sql取出每组的前N条记录

2024-12-02 21:43:33
推荐回答(2个)
回答1:

将date改成了金额cash,原理是相同的~~~

括号内的部分是对article表进行自连接(表a和表b),连接条件: a.type=b.type and a.date<=b.date 的意思是:对于a表中的某一行,找出在b表对应的相同type中有多少个比a表该行金额大(>=)的个数。

如果a表中某一行是该type中的最大值,那么 a.type=b.type and a.cash<=b.cash 在b表对应type中只有1条满足条件;a表中为该type的第二大值,则b表中满足条件的有2条记录,以此类推···  

相当于Excel总的countifs函数 :

回答2:

什么数据库?不同数据的sql是不同的.mysql,postgresql用limit和offset.sql server 用两次top.firebird用rows.其它的我不知道.