Mysql 在这里如何组合分组方式和订单方式?
我有一个数据库和一个叫做“messages”的表。列为时间戳的“发送者”、“接收者”、“主题”、“时间” 通过我的查询,我想得到按主题分组的条目。但我想有相应的时间是最晚的 例如,如果这是我的数据库:Mysql 在这里如何组合分组方式和订单方式?,mysql,database,Mysql,Database,我有一个数据库和一个叫做“messages”的表。列为时间戳的“发送者”、“接收者”、“主题”、“时间” 通过我的查询,我想得到按主题分组的条目。但我想有相应的时间是最晚的 例如,如果这是我的数据库: person1 | person2 | hello | 2019-06-24 20:0**7**:00 person2 | person1 | hello | 2019-06-24 20:0**8**:00 我想得到这个: subject: hel
person1 | person2 | hello | 2019-06-24 20:0**7**:00
person2 | person1 | hello | 2019-06-24 20:0**8**:00
我想得到这个:
subject: hello
last entry: 2019-06-24 20:0**8**:00
我无法将ORDER BY放在GROUP BY前面,因此我尝试了子查询:
SELECT subject, sender, receiver, time
FROM
(SELECT subject, sender, receiver, time
FROM messages
ORDER BY time DESC) AS subselect
GROUP BY subject
但它不起作用,我也不知道为什么
有人能帮我吗?我相信这就是你想要的: 按主题从邮件组中选择主题、发件人、收件人、MAXtime作为时间 所以,它是这样工作的: 获取本例中的相关记录-所有记录,如未提供 按主题列对它们进行分组,因此现在我们有了具有相同主题的记录组 在每个组中,它都会查找“时间最大值”列,但这是每个组的,所以,我想这就是您想要的
如果您想以某种方式对组进行排序,只需在末尾添加另一个ORDER BY,而不需要任何子查询。我相信这就是您要寻找的:
SELECT subject,sender,reseiver,max(time)
FROM messages
GROUP BY subject,sender,reseiver
ORDER BY max(time) DESC
按主题从邮件组中选择主题、发件人、收件人、MAXtime作为时间
所以,它是这样工作的:
获取本例中的相关记录-所有记录,如未提供
按主题列对它们进行分组,因此现在我们有了具有相同主题的记录组
在每个组中,它都会查找“时间最大值”列,但这是每个组的,所以,我想这就是您想要的
如果您想以某种方式对组进行排序,只需在末尾添加另一个ORDER BY,而不需要任何子查询
SELECT subject,sender,reseiver,max(time)
FROM messages
GROUP BY subject,sender,reseiver
ORDER BY max(time) DESC
您应该按发送者分组,也可以按reseiver分组,否则这些列将具有不可预测的值。或者完全省略这些列
您应该按发送者分组,也可以按reseiver分组,否则这些列将具有不可预测的值。或者完全省略这些列。在MySQL 8.x中很容易做到。在5.x中不是那么容易。你有哪个MySQL版本?可能使用MySQL 5.7复制Im:PNo它不工作。。如果它执行,你就用你的结果集玩俄罗斯轮盘赌。。在启用了sql模式的服务器上,此查询只会导致\u full\u group\u出错,因为您在MySQL 8.x中误用了group BYEasy to do。在5.x中不是那么容易。你有哪个MySQL版本?可能使用MySQL 5.7复制Im:PNo它不工作。。如果它执行,你就用你的结果集玩俄罗斯轮盘赌。。在启用sql模式的服务器上,此查询只会导致\u full\u group\u出错,因为您误用group BYNo它不起作用。。如果它执行,你就用你的结果集玩俄罗斯轮盘赌。。在启用了sql模式的服务器上,此查询仅\u full\u group\u将出错。对于问题中的原始查询,仅\u full\u group\u by也将失败,因此,不相关。重新轮盘赌,同意,错过了这一部分,出于某种原因,我认为时间才是最重要的。这不是无关紧要的,topicstarter或其他读者需要知道如果他们执行此类查询会发生什么。当此查询有效时,只有一个有效的执行选项是消息列具有主键或唯一键。。然后可以使用SQL 1999标准的可选特性,即MySQL 5.7.5+支持的所谓函数依赖性。不,它不起作用。。如果它执行,你就用你的结果集玩俄罗斯轮盘赌。。在启用了sql模式的服务器上,此查询仅\u full\u group\u将出错。对于问题中的原始查询,仅\u full\u group\u by也将失败,因此,不相关。重新轮盘赌,同意,错过了这一部分,出于某种原因,我认为时间才是最重要的。这不是无关紧要的,topicstarter或其他读者需要知道如果他们执行此类查询会发生什么。当此查询有效时,只有一个有效的执行选项是消息列具有主键或唯一键。。然后可以使用MySQL 5.7.5+支持的SQL 1999标准可选特性,称为函数依赖。