MySQL 组内排序(Group By)

id name date quan
1 olay 1997-01-01 3
2 olay 2010-01-01 5000
3 olay 2011-01-01 90000
4 kiehl 2011-01-01 333
5 kiehl 2011-12-12 999

以上是示范的数据表, 内容为仓库物品的盘点

现在想显示{每个物品最近一次盘点}的信息

完整代码如下:

SELECT tmp.id,tmp.name,tmp.date,tmp.quan FROM(
SELECT id,name,date,quan FROM datet ORDER BY date desc) as tmp
GROUP BY name

思路就是首先对日期进行降序,这样日期临近的就被排在前面,之后再对物品名称分组,

就得到[对物品名分组,并且日期是降序的]结果了


实现上, 括号内是一次查询,就是按日期排序

把这个查询的结果作为tmp表(as tmp),之后再对tmp表按名称分组(group by name)就得到了结果

发布了27 篇原创文章 · 获赞 0 · 访问量 6万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章