与同一列SQL选择多行值
问题描述:
我有表:与同一列SQL选择多行值
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
答
由于您使用的是SQL Server,您可以使用ranking function s到得到结果:
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
请注明您通过添加适当的标签(Oracle,SQL Server,MySQL等)来定位的RDBMS。可能会有利用不被普遍支持的语言或产品功能的答案。此外,通过使用特定的RDBMS标记它,您的问题可能会得到更适合回答的人的关注。 – Taryn 2013-03-13 10:31:31
噢..对不起,我修好了:) – Justinas 2013-03-13 10:34:31