gpt4 book ai didi

SQL 每月销售额前 10 名

转载 作者:行者123 更新时间:2023-12-04 00:09:24 25 4
gpt4 key购买 nike

问候大家。我有一个 SQL 2008 express 数据库,名称为 tbl_Merchant,类似如下:

Merchant | Sales | Month
Comp.1 100 1
Comp.2 230 1
Comp.3 120 1
Comp.1 200 2
Comp.2 130 2
Comp.3 240 2
Comp.1 250 3
. . .
. . .
. . .

我需要找到 12 个月内每个月销售额排名前 10 的商家。

如果只是一个月,那很容易。
SELECT TOP 10 
Merchant,
Sales,
Month
FROM tbl_Merchant
WHERE Month = 1
ORDER BY Sales DESC

但是如果我想在 12 个月内找到它们,我就会陷入困境。我需要显示 120 个商家,它们是每个月的前 10 个销售商家。目前我的解决方案是将第 1 个月到第 12 个月的 12 个表合并在一起,但我认为这不是一个好方法。

任何人都可以给我任何建议吗?

非常感谢。

最佳答案

适用于 Sql Server 2005+

整体试试这个:

SELECT TOP 10 
Merchant,
SUM(Sales) Sales
FROM tbl_Merchant
WHERE Month BETWEEN 1 and 12
GROUP BY Merchant
ORDER BY 2 DESC



如果您需要每月前 10 名的详细信息 每月
;WITH MonthsCTE(m) as
(
SELECT 1 m
UNION ALL
SELECT m+1
FROM MonthsCTE
WHERE m < 12
)
SELECT m [Month], t.*
FROM MonthsCTE
CROSS APPLY
(
SELECT TOP 10
Merchant,
SUM(Sales) Sales
FROM tbl_Merchant
WHERE Month = MonthsCTE.m
GROUP BY Merchant
ORDER BY 2 DESC
) t

关于SQL 每月销售额前 10 名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8801085/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com