我想实现这样的效果:
lb name date
11 222 2007-9-19
11 333 2007-9-18
11 444 2007-9-17
22 555 2007-9-20
22 666 2007-9-18
22 777 2007-9-16
33 888 2007-9-21
33 999 2007-9-19
33 000 2007-9-18
........
按照类别(lb)分组,在各组内日期从大到小排序,而且每一组我只要8条数据。SQL怎么写?不知道我说明白了没?
最早看到这个问题是在csdn上,因为但是我也遇到了同样的问题,于是一直在思考如何用group by 来实现,结果发现不行,在csdn上看到了这个答案
select p.lb, p.name, p.date from mytable p
where p.date in (select top 8 mytable.date from mytable where mytable.lb=p.lb
order by mytable.date desc) order by p.lb, p.date desc
这个sql语句其实和
select p.lb, p.name, p.date from mytable p order by p.lb, p.date desc 意思没有区别不知为何要弄得如此复杂