使用子查询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