gpt4 book ai didi

Sql Server 按特定顺序显示项目

转载 作者:行者123 更新时间:2023-12-02 18:44:40 27 4
gpt4 key购买 nike

我有一个项目列表

商品名称制造商TopSalesUnit

Item1     A             100   
Item2 A 80
Item3 A 60
Item4 B 70
Item5 B 50
Item6 B 30
Item7 C 10
Item8 C 05

我希望对记录进行排序,以便首先显示最高的 TopSalesUnit 项目,然后显示来自不同制造商的下一个最高项目,然后显示来自不同制造商的下一个最高项目显示第三个制造商等:

商品名称制造商TopSalesUnit

Item1       A             100    
Item4 B 070
Item7 C 010
Item2 A 080
Item5 B 050
Item8 C 005
Item3 A 060
Item6 B 030

如何用T-SQL编写查询来实现它?

最佳答案

尝试:

DECLARE @YourTable table (ItemName varchar(10), Manufacturer char(1), TopSalesUnit int)

INSERT @YourTable VALUES ('Item1','A ',100)
INSERT @YourTable VALUES ('Item2','A ',80)
INSERT @YourTable VALUES ('Item3','A ',60)
INSERT @YourTable VALUES ('Item4','B ',70)
INSERT @YourTable VALUES ('Item5','B ',50)
INSERT @YourTable VALUES ('Item6','B ',30)
INSERT @YourTable VALUES ('Item7','C ',10)
INSERT @YourTable VALUES ('Item8','C ',05)

SELECT
dt.ItemName,dt.Manufacturer,dt.TopSalesUnit
FROM (SELECT
ItemName,Manufacturer,TopSalesUnit,ROW_NUMBER() OVER(PARTITION BY Manufacturer ORDER BY TopSalesUnit DESC) AS RowNumber
FROM @YourTable
) dt
ORDER BY dt.RowNumber,dt.Manufacturer

输出:

ItemName   Manufacturer TopSalesUnit
---------- ------------ ------------
Item1 A 100
Item4 B 70
Item7 C 10
Item2 A 80
Item5 B 50
Item8 C 5
Item3 A 60
Item6 B 30

(8 row(s) affected)

关于Sql Server 按特定顺序显示项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3611944/

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