将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函数 :
什么数据库?不同数据的sql是不同的.mysql,postgresql用limit和offset.sql server 用两次top.firebird用rows.其它的我不知道.