[英]Mysql results return ungrouped
我有一个带有列的数据库表thanks_entry
- entryid
- varname
- userid
- contenttype
- contentid
- dateline
- receiveduserid
该表存储用户/用户给/接收的喜欢/感谢的数据
我想获取每月最喜欢/谢谢的用户的统计信息
查询:
SELECT receiveduserid,COUNT(receiveduserid) AS receivedthanks
FROM thanks_entry
WHERE varname ='likes' AND dateline > 1420070400
AND dateline <1422748800
GROUP BY userid ORDER BY COUNT(receiveduserid) DESC LIMIT 20
此查询应返回按用户ID分组的结果。
- receiveduserid|receivedthanks
- 185883|190
- 43455|100
- 163068|85
- 2|66
- 186270|49
- 189468|34
- 105597|22
- 2|17
- 186270|17
- 163068|16
- 117147|15
- 186270|15
- 186270|14
- 186643|13
- 2|12
- 189170|12
- 118500|8
- 2|8
- 105597|8
- 2|7
正如您在此处注意到的那样,尽管我grouped by receiveduserid
ID grouped by receiveduserid
。. receiveduserid 2
未被分组,但在结果中出现多次。
尝试以下操作: 您可能需要关注
SELECT receiveduserid,COUNT(receiveduserid) AS receivedthanks
FROM thanks_entry
WHERE varname ='likes' AND dateline > 1420070400
AND dateline <1422748800
GROUP BY receiveduserid ORDER BY receivedthanks DESC LIMIT 20
而且您想按多列分组,然后使用,
(逗号),例如GROUP BY receiveduserid, another_column
第一列的优先级是第一...
选择查询语句的一部分时,应按查询语句的一部分逐个包括字段。
SELECT userid,COUNT(receiveduserid) AS receivedthanks
FROM thanks_entry
WHERE varname ='likes' AND dateline > 1420070400
AND dateline <1422748800
GROUP BY userid ORDER BY COUNT(receiveduserid) DESC LIMIT 20
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.