将逻辑压缩为一个Sql查询

时间:2010-03-09 13:51:43

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

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

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

暂时忽略拼写和大写问题,我应该用什么Sql来获取唯一列表以及每个项目?为了概念验证,我查询了不同的城市列表(很容易),然后通过每个城市查询它在表中的次数进行迭代。这显然非常低效。

有人可以帮我用Sql在一个声明中完成所有这些吗?

7 个答案:

答案 0 :(得分:3)

SELECT
 CityName,
 COUNT(*) AS CityListings
FROM
 YourTable
GROUP BY
 CityName
ORDER BY
 CityName

答案 1 :(得分:2)

SELECT CITY,COUNT(*)FROM TABLE GROUP BY CITY

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

答案 2 :(得分:2)

从CitiesTable选择CityName,COUNT(*)

按城市名称分组

答案 3 :(得分:1)

您正在寻找Group By子句:

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

答案 4 :(得分:1)

首先,试试这个

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

答案 5 :(得分:1)

您的意思是以下内容吗?

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

听起来就像是你想要的。

答案 6 :(得分:1)

SELECT DISTINCT city_name, count(*)
FROM rentals
GROUP BY city_name