gpt4 book ai didi

sql - SQL Server 2014 中仅分组后的不同值

转载 作者:行者123 更新时间:2023-12-02 09:32:51 24 4
gpt4 key购买 nike

这是数据示例:

 ID     Value   NumPeriod 
------------------------
1681642 596.8 2
1681642 596.8 3
1681663 445.4 2
1681663 445.4 3
1681688 461.9 3
1681707 282.2 3
1681724 407.1 3
1681743 467 2
1681743 467 3
1681767 502 3

我想按 [ID] 进行分组,并仅采用每个组内 [Value] 的不同值,并根据 [NumPeriod] 获取“第一个”不同的 [Value]。所以结果看起来像这样:

 ID     Value   NumPeriod 
-------------------------
1681642 596.8 2
1681663 445.4 2
1681688 461.9 3
1681707 282.2 3
1681724 407.1 3
1681743 467 2
1681767 502 3

所以我认为这样的事情会起作用,但没有运气:

select 
ID, distinct(Value), NumPeriod
from
MyTable
group by
ID, Value, NumPeriod
order by
ID, NumPeriod

如有任何帮助,我们将不胜感激。谢谢!

最佳答案

您可以使用排名函数和 CTE:

WITH CTE AS
(
SELECT ID, Value, NumPeriod,
RN = ROW_NUMBER() OVER (PARTITION BY ID ORDER BY NumPeriod ASC)
FROM MyTable
)
SELECT ID, Value, NumPeriod
FROM CTE
WHERE RN = 1
ORDER BY ID, Value

关于sql - SQL Server 2014 中仅分组后的不同值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30848143/

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