gpt4 book ai didi

mysql - 如何使用 mySQL 进行排序、分组、排序

转载 作者:可可西里 更新时间:2023-11-01 06:48:18 25 4
gpt4 key购买 nike

这是我的表格的简化版本

tbl_records
-title
-created
-views

我想知道如何在它们按标题分组的情况下进行查询,但为每个组返回的记录是最近创建的。然后我将按浏览量排序。

我猜的一种方法是执行子查询并按创建顺序对其进行排序,然后按标题对其进行分组,然后从这些结果中按 View 对其进行排序。不过我想还有更好的方法。

谢谢

编辑:

示例数据:

-title: Gnu Design
-created: 2009-11-11 14:47:18
-views: 104

-title: Gnu Design
-created:2010-01-01 21:37:09
-views:9

-title: French Connection
-created:2010-05-01 09:27:19
-views:20

我希望结果是:

-title: French Connection
-created:2010-05-01 09:27:19
-views:20

-title: Gnu Design
-created:2010-01-01 21:37:09
-views:9

仅显示最新的 Gnu 设计,然后结果按 View 排序。

最佳答案

这是 StackOverflow 上经常出现的 greatest-n-per-group 问题的一个例子。

这是我通常的解决方案:

SELECT t1.*
FROM tbl_records t1
LEFT OUTER JOIN tbl_records t2 ON (t1.title = t2.title AND
(t1.created < t2.created OR t1.created = t2.created AND t1.primarykey < t2.primarykey))
WHERE t2.title IS NULL;

解释:找到 t1 行,其中没有其他行 t2 具有相同的 title 和更大的 created日期。如果出现平局,请使用一些唯一的键来解决平局,除非可以为每个 title 获取多行。

关于mysql - 如何使用 mySQL 进行排序、分组、排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2119703/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com