0

私はテーブルを持っています:

column1   column2    column3        column4 
---------------------------------------------
1          53          6527          111
2          53          6527          111
3          53          6527          111
4          53          6527          111
5          53          6527          222
6          53          6527          222
7          53          6527          333
8          53          6527          333
9          53          6527          444
10         53          6527          444
11         53          6527          444
12         53          6527          444

selectcolumn4 の値を持つ 3 つの行が存在する場合は、2 つしか存在しない場合は 2 つまたは 1 つが必要です。最大は 3 つです。select私はこのような結果を得る必要がある後:

column1   column2    column3        column4 
---------------------------------------------
1          53          6527          111
2          53          6527          111
3          53          6527          111
5          53          6527          222
6          53          6527          222
7          53          6527          333
8          53          6527          333
9          53          6527          444
10         53          6527          444
11         53          6527          444
4

1 に答える 1

0

SQL Server を使用しているため、ランキング関数を使用して結果を取得できます。

select [column1], [column2], [column3], [column4]
from
(
  select [column1], [column2], [column3], [column4],
    row_number() over(partition by column2, column3, column4 order by column1) rn
  from yourtable
) src
where rn <= 3

デモで SQL Fiddle を参照してください

于 2013-03-13T10:36:49.047 に答える