[英]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.