我有一個表logins
下面的模式獲取最大計數最高計數,表中每個user_id
。的MySQL從一個子查詢組
我嘗試以下查詢:
SELECT MAX(num) as max_num, user_id, weekday
FROM (
SELECT COUNT(*) as num, user_id, weekday
FROM logins
GROUP BY user_id, weekday
) C
WHERE user_id = C.user_id AND num = C.num
GROUP BY user_id;
這讓我weekday = 1
,而不是2
。我認爲我不應該在這裏使用WHERE
條款,但我無法設法得到正確的結果。
我檢查了,沒有運氣其他類似的問題,如:
我創建了一個SQL撥弄我的例子:http://sqlfiddle.com/#!9/e43a71/1
注意'COUNT(*)'可能並不總是完全用在InnoDB由於這只是現在固定在MySQL 19年7月5日的錯誤工作。我之前遇到過這個問題。似乎升級到5.7.19後工作正常。 https://dev.mysql.com/doc/relnotes/mysql/5.7/en/news-5-7-19.html –
@Marc。 。 。你真的更喜歡這個的其他答案? –