【发布时间】:2021-12-04 07:10:05
【问题描述】:
我有这个数据集:
shopID supplier supply_count
1 a 12
2 b 12
2 f 12
2 e 10
3 b 5
3 a 2
4 f 15
4 c 11
我已使用此查询来获得每个组的第二高值:
select s1.shopId, max(s1.supply_count)
from supply s1
where supply_count NOT IN (
select max(supply_count)
from supply s2
where s1.shopId = s2.shopId
)
group by s1.shopId
我得到的结果是:
shopID supply_count
2 10
3 2
4 11
期望的输出是: (如果没有第二高我想呈现最高的)
shopID supply_count
1 12
2 10
3 2
4 11
【问题讨论】:
-
不应该是第二高的 10 for 2 基于输入吗?
-
12 不是第 1 组的第二个最大值。
-
但万一没有第二高的我想呈现最高的
标签: sql sql-server tsql