我有一张包含所有美国邮政编码的表格。每行包含邮政编码的城市和州名称。我正在尝试获取一系列显示在多个州的城市。如果在同一个城市没有X个邮政编码,这不会有问题......
所以基本上,我只想把一个州的城市算作1而不是计算城市/州7次,因为该城市/州有2个以上的邮政编码......
我不确定该怎么做。我知道我需要使用count但是如何告诉mysql只将给定的city / state组合计为1?
答案 0 :(得分:10)
SELECT City, Count(City) As theCount
FROM (Select City, State From tblCityStateZips Group By City, State) As C
GROUP By City
HAVING COUNT Count(City) > 1
这将返回包含在多个州的所有城市,包括计数。
格林维尔39
格林伍德2
GreenBriar 3
等
答案 1 :(得分:1)
这会起作用吗
Select CityName, Count (Distinct State) as StateCount
From CityStateTable
Group by CityName
HAVING Count (Distinct State) > 1
答案 2 :(得分:1)
关于州和城市的第一组,然后将结果分组到城市:
select City
from (
select State, City
from ZipCode
group by State, City
) x
group by City
having count(*) > 1
答案 3 :(得分:0)
尝试使用select distinct
SELECT DISTINCT city, state FROM table GROUP BY city
答案 4 :(得分:0)
您可能应该为邮政编码创建一个单独的表,然后避免重复。