[英]multiple highest records mysql
有兩行最高值為5,但下面的查詢只返回最后一個最高記錄...如何獲得具有最高成員值的所有行?
我可以使用max是where子句plz幫助嗎?
SELECT teamcode,MAX(member) AS members FROM(
SELECT t.`teamcode` AS teamcode,
COUNT(*) AS member
FROM `users` u
JOIN teams t
ON u.teamcode=t.tm_id
GROUP BY `teamcode`
) AS maxcount
如何獲得所有最高價值?
從WHERE子句獲取具有最大值的行可能會更好,例如:
WHERE member = MAX(member)
而不是試圖在SELECT子句中這樣做。
編輯:我在這里擴展了我的SQL知識,但試試這個:
SELECT teamcode, member
FROM(
SELECT t.'teamcode' AS teamcode, COUNT(*) AS member
FROM 'users' u JOIN teams t ON u.teamcode = t.tm_id
GROUP BY 'teamcode'
HAVING member = MAX(member)
) AS maxcount
首先,因為您只想使用團隊代碼計算:您不需要使用JOIN
! 但是,您需要一個幫助表。
SELECT teamcode,
COUNT(*) as members
FROM users
GROUP BY teamcode
HAVING COUNT(*) = ( SELECT COUNT(*)
FROM users
GROUP BY teamcode
ORDER BY COUNT(*) DESC
LIMIT 1 );
SQL-Fiddle ,如果你願意的話。
使用的引用: SQL查詢使用函數 - 如何獲取MAXIMUM列表的計數
如果您不僅需要查詢中的最大值,最好使用GROUP BY。
SELECT teamcode,MAX(member) AS members FROM(
SELECT t.`teamcode` AS teamcode,
COUNT(*) AS member
FROM `users` u
JOIN teams t
ON u.teamcode=t.tm_id
GROUP BY `teamcode`
) AS maxcount
GROUP BY teamcode
如果您想要兩個五個最高值,則應使用“LIMIT”子句。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.