日期:2014-05-18  浏览次数:20416 次

一条SQL命令 得出各分类的排行
如一个文章系统,有中国文章,日本文章,美国文章,韩国文章4个类别
现在要用一条语句就列表表中各类别最新加入的10篇文章,也就是40条记录,10条是中国文章,10条是日本文章等等

现在用max我只能得到4个类别中的第一条,也就是4条数据

SELECT MAX(id) AS id
FROM WZ_list
GROUP BY sclassid

------解决方案--------------------
---方法1
Select * From WZ_list As T Where ID In
(Select Top 10 ID From WZ_list Where sclassid=T.sclassid Order By ID Desc)
Order By sclassid,ID Desc

---方法2
Select * From WZ_list As T Where
(Select Count(1) From WZ_list Where sclassid=T.sclassid And ID>=T.ID)<11
Order By sclassid,ID Desc

---方法3 
Select * From WZ_list As T Where Not Exists 
(Select 1 From WZ_list Where sclassid=T.sclassid And ID>=T.ID Group By sclassid Having Count(1)>10) 
Order By sclassid,ID Desc