2010-03-09 80 views
0

首先是免責聲明,我沒有設計我現在支持的數據庫,我不會這樣設計它,但是我在這裏。將邏輯壓縮到一個sql查詢

問題:我的客戶在他的數據庫中有一個表,其中包含租賃列表。在這個表格中是一個文本字段來存儲列表的城市。我的客戶希望看到的是所有獨特城市的下拉列表,每個城市的旁邊都有一個數字,代表該城市有多少列表。

暫時忽略拼寫和大小寫問題,我應該使用什麼Sql來獲取唯一列表以及每個項目數?爲了證明概念證明,我查詢了不同的城市列表(很容易),然後遍歷每個查詢它在表格中的次數。這顯然是非常低效的。

有人可以幫我用Sql在一個語句中完成所有這些嗎?

+0

這將使它更容易,如果你有一些表和列名,這樣我們都會在我們的答案中說同一種語言。 – Benjol

+0

非常感謝大家。我意識到任何具有基本SQL技能的人都可以很快地開發這個功能,因此我在這裏發佈。如果我可以將多於一個答案標記爲接受,我會。 –

回答

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

用於別名「Count」列和按城市排序的+1。 – RedFilter

2

選擇城市,COUNT(*)FROM TABLE GROUP BY CITY

;)獲得良好的SQL書,這是 「SQL 21時間」 水平;)

1

您正在尋找Group By條款:

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

要下手,試試這個

SELECT City, Count(*) 
FROM myTable 
GROUP BY City 
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 

這正是它聽起來像你之後。

2

選擇CITYNAME,COUNT(*)從CitiesTable

組由CITYNAME

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

你不應該在這裏使用截然不同的小組,通過照顧它。 – HLGEM