希望是一个相当简单的SQL,我有一个包含两列的表,街道和城市。鉴于3个街道名称的列表,我如何选择街道上常见的城市?
例如。
Street City
------ ----
1st St NYC
2nd St NYC
3rd St NYC
1st St SF
1st St LA
etc St XX
如果我有“1st St”,“2nd St”和“3rd St”,哪个查询返回“NYC”?
答案 0 :(得分:4)
您可以使用group by
和having
:
select t.city
from table t
where t.street in ('1st st', '2nd st', '3rd st')
group by t.city
having count(distinct t.street) = 3;
这是set-within-sets查询的一个示例,您可以在其中查找另一个(城市)的事物(街道)集合。 Group by
和having
是解决此类问题的一种非常灵活的方式。