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