use*_*988 2 sql sql-server group-by distinct sql-server-2014
以下是数据示例:
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
Run Code Online (Sandbox Code Playgroud)
我想按[ID]进行分组,只取每组中[Value]的不同值,并根据[NumPeriod]取"first"不同的[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
Run Code Online (Sandbox Code Playgroud)
所以我虽然这样的东西会起作用,但没有运气:
select
ID, distinct(Value), NumPeriod
from
MyTable
group by
ID, Value, NumPeriod
order by
ID, NumPeriod
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激.谢谢!
您可以使用排名功能和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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
473 次 |
| 最近记录: |