从数据表中选择每个ID的顶部条目-SQL

时间:2018-11-09 14:09:11

标签: sql

假设我有以下数据表:

ID       VALUE 
---      ------- 
123      a
123      b
456      c
456      d
789      e

如果已经对数据进行了排序,如何获得输出以仅选择每个ID的顶部条目。即,我需要显示数据:

ID       VALUE
---      -------
123      a
456      c
789      e

2 个答案:

答案 0 :(得分:1)

SQL表表示无序集。除非您有指定顺序的列,否则该表没有顺序。

这是SQL的基础。让我假设您有一个订购专栏。然后,您可以执行以下操作:

select t.*
from t
where t.ordcol = (select max(t2.ordcol) from t t2 where t2.id = t.id);

答案 1 :(得分:0)

您还可以动态添加订单,

例如

select * from 

(select id, value, dense_rank() OVER (ORDER BY value asc) as myrank from #mytable ) aa

where myrank=1