当前位置: 首页 > 面试题库 >

SQL Group排序依据

彭允晨
2023-03-14
问题内容

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

进行以下查询:

            SELECT Category FROM Article
            GROUP BY Category

我想有效地做到这一点:

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

我并不是很想选择DatePublished,但是按它进行排序似乎很有意义。那是行不通的。

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


问题答案:
SELECT  Category
FROM    Article
GROUP BY
        Category
ORDER BY
        MAX(DatePublished) DESC

由于执行了GROUP BY,因此需要在非分组列上运行一些聚合函数

MAX 将从每个类别中选择最后发表文章的日期,并相应地订购类别。



 类似资料:
  • 问题内容: 在这里可以找到很多类似的问题,但是我认为没有一个人能够充分回答这个问题。 如果可以的话,我将继续从当前最受欢迎的问题开始,并使用其示例。 本例中的任务是获取数据库中每个作者的最新帖子。 该示例查询产生不可用的结果,因为它并不总是返回最新的帖子。 当前接受的答案是 不幸的是,这个答案是简单而简单的错误,并且在许多情况下产生的结果比原始查询更不稳定。 我最好的解决方案是使用形式的子查询 我

  • 我正在尝试优化这个查询,该查询通过字段(第1个)和字段(第2个)对进行排序。没有第一个字段查询需要大约0.250秒,但有了它需要大约2.500秒(意味着慢了10倍,可怕)。有什么建议吗? 注意: -使用InnoDB(MySQL 5.7.19) -主要是表上的 -字段同时被索引和 解释结果: 更新^^ 信誉规定:一个帖子,多少(n=信誉)天可以显示在列表的顶部。 实际上,我试图给一些帖子的声誉,可以

  • 问题内容: 我有一张标签表,想从列表中获得计数最高的标签。 样本数据如下所示 使用 让我得到正在寻找的完美数据。但是,我想对它进行组织,以使最高的标签数排在首位,并限制它仅向我发送前20个左右。 我试过了 而且我不断收到“组功能的无效使用-ErrNr 1111” 我究竟做错了什么? 我正在使用MySQL 4.1.25-Debian 问题答案: 在所有版本的MySQL中,只需在SELECT列表中为聚

  • 此实例中的任务是获取数据库中每个作者的最新文章。 示例查询产生不可用的结果,因为它并不总是返回的最新消息。 目前公认的答案是 编辑:这个问题是另一个问题的延续,我的具体情况略有不同。您可以(也应该)假设还有一个wp_posts.id是该特定帖子的唯一标识符。

  • 问题内容: 我有一个名为Gift的表,该表与一个名为ClickThrough的表具有一对多关系- 该表指示单击了该特定Gift的次数。我需要查询所有的Gift对象,按ClickThrough计数排序。我不需要返回ClickThrough计数,因为我不需要做任何事情,我只想将其用于订购即可。 我需要查询以直接返回Gift对象的列表,只是按ClickThrough计数排序。如何使用Criteria A

  • 问题内容: 我正在对两个表进行联接。一个是用户表,另一个是高级用户列表。我需要让高级会员首先出现在我的查询中。但是,仅因为它们位于高级用户表中并不意味着它们仍然是高级成员- 还有一个IsActive字段也需要检查。 因此,基本上我需要按以下顺序返回结果: 活跃的高级用户 普通和不活跃的高级用户 现在我有以下内容: 问题在于,它会将非活跃高级会员置于非高级会员之上。 (我为此使用MS SQL Ser