![](/img/trans.png)
[英]SQL get value based on corresponding min/max(value) from column in another related table
[英]SQL return data related to the corresponding MAX() value
我有一個SQL查詢問題。 我的數據庫如下所示:
State | City | Population
-----------------------------------
Texas | Austin | 865.00
Texas | Houston | 2.200.00
Florida | Jacksonville | 840.000
Florida | Miami | 417.000
... | ... | ...
現在,我想知道一個州和相關城市的最大人口,如下所示:
OUTPUT:
State | City | Population
-----------------------------------
Texas | Houston | 2.200.00
Florida | Jacksonville | 840.000
... | ... | ...
我怎樣才能做到這一點?
編輯:我使用MSAcces 2013,表名稱:TPopulation。 對困惑感到抱歉。
盡管這里不太可能建立聯系,但這種方法可以實現聯系。
-- overall
select t1.State, t1.City, t1.Population
from T as t1
where Population = (
select max(t2.Population) from T as t2
)
-- per state
select t1.State, t1.City, t1.Population
from T as t1
where t1.Population = (
select max(t2.Population) from T as t2 where t2.State = t1.State
)
請注意,如果每個州不止一個城市的最大人口數相同,則每個州將返回多個城市。
MS訪問:
SELECT
T1.State,
T1.City,
T1.Population
FROM
TPopulation AS T1
WHERE
T1.Population =
(SELECT MAX(T2.Population) FROM TPopulation AS T2 WHERE T2.State = T1.State)
ANSI:
SELECT
MaxP.State,
S.City,
S.Population
FROM
(
SELECT
State,
MAX(Population)
FROM
TPopulation
GROUP BY
State
) AS MaxP
INNER JOIN TPopulation AS S ON
S.State = MaxP.State
AND S.Population = MaxP.Population
ORDER BY
MaxP.State ASC,
S.City ASC
這是我的代碼。 它顯示了正確的順序,最大的城市在每個州中排名第一。 但這顯示了每個州的每個城市,而我只想要每個州最大的城市:
SELECT State, City, Population
FROM TPopulation
ORDER BY State DESC , Population DESC;
OUTPUT:
State | City | Population
-----------------------------------
Texas | Houston | 2.200.00
Texas | Austin | 865.00
Florida | Jacksonville | 840.000
Florida | Miami | 417.000
... | ... | ...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.