【发布时间】:2010-03-25 14:55:50
【问题描述】:
我有一张包含所有美国邮政编码的表格。每行包含邮政编码的城市和州名。我正在尝试获取出现在多个州的城市列表。如果同一个城市没有 X 个邮政编码,这将不是问题......
所以基本上,我只想将一个州的城市计为 1,而不是将城市/州计算 7 次,因为该城市/州有 2 个以上的邮政编码......
我不太确定该怎么做。我知道我需要使用 count 但我如何告诉 mysql 仅将给定的城市/州组合计为 1?
【问题讨论】:
我有一张包含所有美国邮政编码的表格。每行包含邮政编码的城市和州名。我正在尝试获取出现在多个州的城市列表。如果同一个城市没有 X 个邮政编码,这将不是问题......
所以基本上,我只想将一个州的城市计为 1,而不是将城市/州计算 7 次,因为该城市/州有 2 个以上的邮政编码......
我不太确定该怎么做。我知道我需要使用 count 但我如何告诉 mysql 仅将给定的城市/州组合计为 1?
【问题讨论】:
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
绿蔷薇 3
等等
【讨论】:
先按州和市分组,然后按城市分组:
select City
from (
select State, City
from ZipCode
group by State, City
) x
group by City
having count(*) > 1
【讨论】:
这样可以吗
Select CityName, Count (Distinct State) as StateCount
From CityStateTable
Group by CityName
HAVING Count (Distinct State) > 1
【讨论】:
尝试使用 select distinct
SELECT DISTINCT city, state FROM table GROUP BY city
【讨论】:
您可能应该为邮政编码创建一个单独的表以避免重复。
【讨论】: