使用子查詢coorleated識別最大的人口爲同一狀態中的一個縣。
With CTE as
(Select 'A' as state,1000 as population, 'A1' as county FROM DUAL UNION ALL
Select 'A',1000, 'A2' FROM DUAL UNION ALL
Select 'A',1001, 'A3' FROM DUAL UNION ALL
Select 'A',1001, 'A3' FROM DUAL UNION ALL
Select 'A',1001, 'A4' FROM DUAL UNION ALL
Select 'B',2000, 'B1' FROM DUAL UNION ALL
Select 'B',2000, 'B3' FROM DUAL UNION ALL
Select 'B',2001, 'B2' FROM DUAL UNION ALL
Select 'B',2002, 'B4' FROM DUAL)
Select population, county from CTE A1
where a1.population >= (Select max(A2.population) from CTE A2 Where A2.State = A1.State) Group by population, county
返回:
Population County
1001 A3
1001 A4
2002 B4
與你的表名稱替換CTE在這兩種情況下,在這個選擇,你應該沒問題。
選擇人口,從CTE A1 縣城裏a1.population> =(SELECT MAX(A2.population)從CTE A2凡A2.State = A1.State)集團由人口,縣
注:如果兩個縣有相同的人口,那麼兩個縣都歸還了。如果一個縣因爲某種原因被列出了兩次,他們會被羣組刪除。如果同一個縣在相同人口的兩個州中存在,那麼您可能不會得到想要的結果,除非您將狀態添加到select和group by ...
SQLite沒有有CTE。 –
@CL。那麼提供的答案也沒有CTE。 with語句僅用於獲取示例數據。在返回後您會注意到:在選擇兩種情況下將CTE替換爲您的表名,並且您應該沒問題。 – xQbert