[英]SQL statement to group and count duplicates
我有一个称为报表的表格,看起来有点像这样:
|--|-------|------|-------------|-----------|------|
|ID|User_ID|Mod_ID|Mod_Timestamp|Mod_Comment|tstamp|
|--|-------|------|-------------|-----------|------|
|0 | 0 | 1 | 1387025342 | XYZBLEH |123123|
|--|-----------------------------------------------|
我还有另一个表称为reports_users,如下所示:
|--|----|
|ID|Name|
|--|----|
|0 |Damo|
|--|----|
Report表中的用户ID和Mod_Id都引用了Report_Users表中的ID,现在我需要的是有时在Mod_ID列中将有重复项,我想做的就是将它们组合在一起,并算作一个计数重复项,因此看起来像这样:
|--|----|-----|
|ID|Name|count|
|--|----|-----|
|0 |Damo| 16 |
|--|----|-----|
我可以将名称添加到表中,但是我似乎无法对其进行分组或计数而不会引起问题,我已经通过Inner Join语句完成了此操作,但似乎无法弄清楚该怎么做。 如果在座的人能对此提供帮助,我将非常感激。
这是我上面提到的SQL
SELECT * FROM request as request_table INNER JOIN(SELECT name, id as uid from request_user)AS user ON(request_table.Mod_id = user.uid)
问候,达米安
完全不需要子选择:
SELECT reports.ID, reports_users.Name, count(reports.ID) AS count
FROM reports
LEFT JOIN reports_users ON reports.User_ID = reports.ID
GROUP BY reports.ID
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.