簡體   English   中英

MySQL結果返回未分組

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM