带排序依据的 SQL 组 [英] SQL Group with Order by

查看:30
本文介绍了带排序依据的 SQL 组的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

感觉它应该有一个基本的解决方案,但我似乎没有得到它.

This feels like it should have a basic solution but I don't seem to be getting it.

接受这个查询:

            SELECT Category FROM Article
            GROUP BY Category

我想有效地做到这一点:

I want to effectively do this:

            SELECT Category, DatePublished FROM Article 
            GROUP BY Category
            ORDER BY DatePublished DESC

我真的不想选择 DatePublished,但按它订购似乎很有意义.但这不起作用.

I don't really want to select DatePublished, but it seemed to make sense to order by it. That doesn't work though.

基本上我想按最新的 DatePublished 文章对类别进行排序.

Basically I want to order categories by the most recent DatePublished article.

推荐答案

SELECT  Category
FROM    Article
GROUP BY
        Category
ORDER BY
        MAX(DatePublished) DESC

既然你做了一个GROUP BY,你需要在非分组列上运行一些聚合函数.

Since you do a GROUP BY, you need to run some aggregate function over non-grouping columns.

MAX 将从每个类别中选择最后发表文章的日期,并相应地对类别进行排序.

MAX will select the date of last published article from each category and order categories accordingly.

这篇关于带排序依据的 SQL 组的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆