gpt4 book ai didi

sql - SELECT TOP N 有两个变量

转载 作者:行者123 更新时间:2023-12-01 04:18:47 25 4
gpt4 key购买 nike

我在 SQL 表中有以下示例

Cust Group Sales
A 1 15
A 1 10
A 1 5
A 2 15
A 2 10
A 2 5
B 1 15
B 1 10
B 1 5
B 2 15
B 2 10
B 2 5

我想展示的是每个客户的前 2 个产品,每个组按销售额降序排序,即
Cust Group Sales
A 1 15
A 1 10
A 2 15
A 2 10
B 1 15
B 1 10
B 2 15
B 2 10

我假设我需要声明两个变量,Cust 和 Group,我只是不确定如何一举完成。

为这个厚重的问题道歉......没有借口。谢谢你的帮助。

最佳答案

嗨,以下在 MSSQL2000 中工作

 SELECT tbl.Cust,
tbl.Group,
tbl.Sales

FROM MyTable tbl

WHERE (SELECT COUNT(*)
FROM MyTable tbl2
WHERE tbl2.Sales > tbl.Sales
AND tbl2.Group = tbl.Group
AND tbl2.Cust = tbl.Cust) < 2

ORDER BY tbl.Cust ASC,
tbl.Group ASC,
tbl.Sales DESC

内部 Select Count(*)查询通过计算当前正在查看的记录上方有多少记录来工作 - 在这种情况下,您希望 b 为 0(第 1 位)或 1(第 2 位)。

请注意,因此,如果您有 2 个以上的值共享第一名(例如,3 个 A/1 的销售额均为 15),您将获得 2 个以上的结果。

但是,对于您的测试集,它返回正确的结果并使用 DISTINCT如果您希望在这种情况下获得更少而不是更多结果,将会有所帮助。此外,如果您的记录具有不同的记录 ID,这可能有助于您在它们之间做出决定。

关于sql - SELECT TOP N 有两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2627999/

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