我希望你過得很好。作為一個新手,我想解決這個問題,但最后,結果是錯誤的。我們有 2 張桌子。城市,它看起來像下面 ["1" "紐約市" "8336817" "NY", "2" "洛杉磯" "3979576" "CA", "3" "芝加哥" "2693976" "IL", ...]。
以及如下所示的狀態。[“AK”“阿拉斯加”“731545”,“AL”“阿拉巴馬”“4903185”,“AR”“阿肯色州”“3017825”,...]。
通過這個查詢,我獲取了加州人口最多的 3 個城市。
選擇前 3 st,cityname,population from City where st='CA' ORDER BY population desc;
此查詢結果:[“CA”“洛杉磯”“3979576”,“CA”“圣地亞哥”“1423851”,“CA”“圣何塞”“1021795”]
然后通過這個查詢,我嘗試獲取該國最多的 3 個州。
按人口 DESC 從州 ORDER 中選擇前 3 個州名、人口;
結果是:[“加利福尼亞”“39512223”,“德克薩斯”“28995881”,“佛羅里達”“21477737”]
現在,我嘗試為每個人口最多的省份解決我的問題;人口最多的三個城市沒有顯示。請幫我解決這個問題!
select top 3 st, cityname, population from City
where st in (select top 3 st from State ORDER by population DESC) 按人口 DESC 排序;
uj5u.com熱心網友回復:
我們可以在DENSE_RANK()這里使用決議函式:
WITH cte AS (
SELECT *, DENSE_RANK() OVER (PARTITION BY statename ORDER BY population DESC) rnk
FROM yourTable
WHERE statename IN ('California', 'Texas', 'Florida')
)
SELECT statename, cityname, population
FROM cte
WHERE rnk <= 3
ORDER BY statename, rnk;
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/533823.html
標籤:sql服务器
