1

私は次の表を持っています

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を使用しています。ありがとう

4

1 に答える 1

4

このために、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
于 2013-04-01T13:41:53.427 に答える