【问题标题】:Select count / duplicates选择计数/重复
【发布时间】:2010-03-25 14:55:50
【问题描述】:

我有一张包含所有美国邮政编码的表格。每行包含邮政编码的城市和州名。我正在尝试获取出现在多个州的城市列表。如果同一个城市没有 X 个邮政编码,这将不是问题......

所以基本上,我只想将一个州的城市计为 1,而不是将城市/州计算 7 次,因为该城市/州有 2 个以上的邮政编码......

我不太确定该怎么做。我知道我需要使用 count 但我如何告诉 mysql 仅将给定的城市/州组合计为 1?

【问题讨论】:

    标签: sql mysql database


    【解决方案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
    等等

    【讨论】:

      【解决方案2】:

      先按州和市分组,然后按城市分组:

      select City
      from (
        select State, City
        from ZipCode
        group by State, City
      ) x
      group by City
      having count(*) > 1
      

      【讨论】:

      • 差不多了!只需将第一行更改为:SELECT city, COUNT(city) as c
      • @mike:所以你想要每个城市出现在多少个州?这不在问题中,所以我没有将其包含在答案中。
      【解决方案3】:

      这样可以吗

      Select CityName, Count (Distinct State) as StateCount
      From CityStateTable
      Group by CityName
      HAVING Count (Distinct State) > 1
      

      【讨论】:

        【解决方案4】:

        尝试使用 select distinct

        SELECT DISTINCT city, state FROM table GROUP BY city
        

        【讨论】:

          【解决方案5】:

          您可能应该为邮政编码创建一个单独的表以避免重复。

          您想查看GROUP BY Aggregate.

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2014-02-26
            • 1970-01-01
            • 2020-02-01
            • 2011-08-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2013-08-23
            相关资源
            最近更新 更多