Mysql SQL,按最大值查找组的计数

Mysql SQL,按最大值查找组的计数,mysql,sql,group-by,Mysql,Sql,Group By,基本上,我有一个带有注释的MySQL表,其中包含提交的ID和日期,我希望用户能够编辑这些注释。编辑注释时,我希望在表中创建一个新条目,其ID与正在编辑的注释相同,但有一个新日期 因此,当我选择我的评论列表时,我想使用SELECT MAX(DateSubmitted)。。。分组依据ID,但我还想获得为每个ID分组的ID数,这样我就知道注释被编辑了多少次 我认为应该是这样的: SELECT ID, COUNT(1) as "Number of edits" FROM comments GROUP B

基本上,我有一个带有注释的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

等一下,由于ID是相同的,您确定在顶部查询中选择的注释将是与最新日期相对应的注释吗?抱歉,我知道此查询有问题。感谢@am05mhz发现我需要添加日期加入条件。同样需要考虑的是,如果DateSubmitted只包含日期数据,此查询将失败,但如果DateSubmitted是时间戳,则会很好,这不是我在备注中所说的吗?“这假设没有两次编辑有完全相同的日期和时间”是的,基本上是一样的,但是有些人存储日期值而没有时间,我只是鼓励使用时间戳代替标题。谢谢你的回答,我应该说得更清楚,我还想要最新的评论
 SELECT ID, 
        MAX(`DateSubmitted`) as "MaxDateSubmitted", 
        COUNT('ID') as "NumComments"
 FROM comments
 GROUP BY ID