簡體   English   中英

有關SQL QUERY OF JOIN + COUNT + MAX的幫助

[英]Help with SQL QUERY OF JOIN+COUNT+MAX

我需要一個幫助構建一個mysql數據庫的SQL查詢。 2表如下:

tblcities (id,name)
tblmembers(id,name,city_id)

現在,我要檢索具有最大“成員”數量的“城市”詳細信息。

問候

SELECT tblcities.id, tblcities.name, COUNT(tblmembers.id) AS member_count
FROM tblcities
LEFT JOIN tblmembers ON tblcities.id = tblmembers.city_id
GROUP BY tblcities.id
ORDER BY member_count DESC
LIMIT 1

基本上:檢索所有城市並計算每個城市有多少成員,按降序排列該成員計數,首先計算最高數量 - 然后僅顯示第一個城市。

糟透了,但這是一種方法:

SELECT * FROM tblcities WHERE id IN (
    SELECT city_id
    FROM tblMembers
    GROUP BY city_id
    HAVING COUNT(*) = (
        SELECT MAX(TOTAL)
        FROM (
            SELECT COUNT(*) AS TOTAL
            FROM tblMembers
            GROUP BY city_id
        ) AS AUX
    )
)

這樣,即使有平局,您仍然可以獲得所有會員人數最多的城市...

Select ...
From tblCities As C
    Join    (
            Select city_id, Count(*) As MemberCount
            From tblMembers
            Order By Count(*) Desc
            Limit 1
            ) As MostMembers
        On MostMembers.city_id = C.id
select top 1 c.id, c.name, count(*)   
from tblcities c, tblmembers m 
where c.id = m.city_id 
group by c.id, c.name 
order by count(*) desc 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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