我有桌子:
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
我需要select
如果存在三行,其中包含一些column4值,如果只存在两个或两个或一个。马克斯是三。在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
答案 0 :(得分:0)
由于您使用的是SQL Server,因此可以使用ranking function来获取结果:
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