具有独特的属性
问题描述:
选择行我有如下表具有独特的属性
ind_id name value date
----------- -------------------- ----------- ----------
1 a 10 2010-01-01
1 a 20 2010-01-02
1 a 30 2010-01-03
2 b 40 2010-01-01
2 b 50 2010-01-02
2 b 60 2010-01-03
2 b 70 2010-01-04
3 c 80 2010-01-01
3 c 90 2010-01-02
3 c 100 2010-01-03
3 c 110 2010-01-04
3 c 120 2010-01-05
4 d 130 2010-01-05
如何选择具有独特ind_id
属性行?无论哪个行肯定会为每个ind_id
。结果集中需要4行。我使用的是SQL Server 2008的感谢
答
对于这一点,你要使用的Windows功能:
select ind_id, name, value, date
from (select t.*, row_number() over (partition by ind_id order by (select NULL)) as seqnum
from t
) t
where seqnum = 1;
如果你只想要出现一次的操作,然后使用:
select ind_id, name, value, date
from (select t.*, count(*) over (partition by ind_id) as NumInds
from t
) t
where numInds = 1
谢谢,第一个是我需要的! –
我希望OP有一些方法来确定他想要的行(最新日期,最大值等)。它可以添加到'ORDER BY'部分,以便返回“正确”的行。 –
@TimofeiDavydik。 。 。不客气。第二个是在那里,因为我最初误解了这个问题,所以我把它留下了。 –