【问题标题】:condense logic down to one Sql query将逻辑浓缩为一个 Sql 查询
【发布时间】:2010-03-09 13:51:43
【问题描述】:

首先是免责声明,我没有设计我现在支持的数据库,我也不会这样设计,但我在这里。

问题:我的客户在他的数据库中有一个包含出租列表的表。在此表中是一个文本字段,用于存储列表所在的城市。我的客户希望看到的是所有独特城市的下拉列表,每个城市旁边都有一个数字,表示该城市有多少房源。

暂时忽略拼写和大小写问题,我应该使用什么 Sql 来获取唯一列表以及每个项目的计数?为了概念证明,我查询了不同的城市列表(很简单),然后遍历每个城市,查询它在表中的次数。这显然是非常低效的。

有人可以帮助我使用 Sql 在一个语句中完成所有这些操作吗?

【问题讨论】:

  • 如果你有一些表名和列名会更容易,这样我们就可以在我们的答案中使用相同的语言。
  • 非常感谢大家。我意识到任何具有基本 SQL 技能的人都可以快速开发它,因此我在这里发布。如果我可以将多个答案标记为已接受,我会的。

标签: .net asp.net sql sql-server database


【解决方案1】:
SELECT
 CityName,
 COUNT(*) AS CityListings
FROM
 YourTable
GROUP BY
 CityName
ORDER BY
 CityName

【讨论】:

    【解决方案2】:

    从按城市分组的表中选择城市,计数 (*)

    ;) 获得一本好的 SQL 书籍,这是“21 小时内的 SQL”级别;)

    【讨论】:

      【解决方案3】:

      从 CitiesTable 中选择 CityName, COUNT(*)

      按城市名称分组

      【讨论】:

        【解决方案4】:

        您正在寻找Group By 子句:

        SELECT city, COUNT(city)
        FROM rentals
        GROUP BY city
        ORDER BY city
        

        【讨论】:

          【解决方案5】:

          首先,试试这个

          SELECT City, Count(*)
          FROM myTable
          GROUP BY City
          

          【讨论】:

            【解决方案6】:

            你的意思是像下面这样吗?

            select city, count(city) from listings
            group by city
            

            这应该转:

            Shepparton blah blah blah
            Mildura    yada yada yada
            Shepparton dum  de   dum
            

            进入:

            Shepparton 2
            Mildura    1
            

            这就是你所追求的。

            【讨论】:

              【解决方案7】:
              SELECT DISTINCT city_name, count(*)
              FROM rentals
              GROUP BY city_name
              

              【讨论】:

              • 你不应该在这里使用 distinct,group by 会处理它。
              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2015-12-09
              • 1970-01-01
              • 1970-01-01
              • 2016-06-28
              相关资源
              最近更新 更多