繁体   English   中英

SQL,通过MAX查找组的计数

[英]SQL, Finding Counts of a Group By MAX

基本上,我有一个带有注释的MySQL表,该表具有提交的ID和日期,并且我希望用户能够编辑这些注释。 编辑评论后,我想在表中创建一个新条目,其ID与正在编辑的评论相同,但有一个新日期。

因此,当我选择评论列表时,我想使用SELECT MAX( DateSubmitted )...按ID分组,但我也想对每个ID分组的ID数进行计数,因此我知道评论已被编辑了多少次。

我认为应该是这样的:

SELECT ID, COUNT(1) as "Number of edits"
FROM comments
GROUP BY ID;

合并:

SELECT ID, MAX(`DateSubmitted`), Comment
FROM comments
GROUP BY ID;

如果要获取最新的注释文本以及编辑日期和计数,请执行以下操作:

SELECT a.ID, a. MaxDateSubmitted, a.NumComments, b.Comment
(SELECT ID, 
        MAX(`DateSubmitted`) as "MaxDateSubmitted", 
        COUNT('ID') as "NumComments"
FROM comments
GROUP BY ID) a
INNER JOIN comments b ON a.ID = b.ID and b.DateSubmitted = a.MaxDateSubmitted;

注意 :假设没有两个编辑具有完全相同的日期和时间(精确到时间部分的精度)。 但是在这种情况下,我认为这是一个正确的假设。

如果您只想要最新的编辑日期和计数:

 SELECT ID, 
        MAX(`DateSubmitted`) as "MaxDateSubmitted", 
        COUNT('ID') as "NumComments"
 FROM comments
 GROUP BY ID
SELECT ID, COUNT(ID) as "Number of edits", MAX(`DateSubmitted`)
FROM comments
GROUP BY ID;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM