可以编写SQL查询以获取下表中每个日期的前5行。我正在尝试为每个数据创建一个样本集,这将限制我尝试处理的数据。
Date Data
1-Jan abc
1-Jan bsd
1-Jan ejk
1-Jan srrf
1-Jan sfj
1-Jan fj
1-Jan rgt
2-Jan jfnv
2-Jan sdjnv
2-Jan zdsj
2-Jan abc
2-Jan bsd
2-Jan ejk
2-Jan srrf
2-Jan sfj
3-Jan fj
3-Jan jdsfh
3-Jan jfnv
3-Jan sdjnv
3-Jan zdsj
3-Jan abc
3-Jan bsd
3-Jan ejk
3-Jan srrf
标准SQL方法row_number()
用于此目的:
select t.*
from (select t.*, row_number() over (partition by date order by date) as seqnum
from table t
) t
where seqnum <= 5;
一个重要的警告:SQL表表示无序集。没有“每个日期的前五行”的概念,除非您另有另一列指定每个日期内的顺序。上面每个日期需要五行。
另外,row_number()
即使它是ANSI标准函数,也不是所有数据库都支持。他们通常有一些其他方法可以完成同一件事。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句