簡體   English   中英

多個最高記錄mysql

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

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