2014-02-28 18 views
0

我有一張包含歌曲的表格。我想根據一個特定的字母來計算有多少首歌曲。根據特定字母表統計有多少首歌曲

該表被稱爲「歌曲」,並將列名稱稱爲「名稱」 字母表由我自己給出,因爲我處理的是西班牙字母表,其中包含字母表中的字符,如'ñ', ....

結果應該是這樣的:

alphabet total 
--------------------------------- 
a   43 
b   5 
c   0 (or NULL) 
d   34 
.... 
n   25 
ñ   7 

我能挑歌的拼音的第一個字符是這樣和組他們一共拿到

SELECT LOWER(LEFT(name, 1)), COUNT(*) 
FROM song 
GROUP BY LOWER(LEFT(name, 1)) 

但是,如果沒有以字母K開頭的歌曲,它不會顯示在結果中,並且我想顯示爲0或NULL

如何實現此目的?

請原諒我,英語不是我的第一語言。如果我不清楚,我會盡力回答你所有的問題。 謝謝

回答

1

可能有更快的方法,但這是一個。

letter列創建字母表並添加所有字母。

然後,first_letter列添加到您的歌曲表:

ALTER TABLE song ADD COLUMN first_letter VARCHAR(1); 

UPDATE song 
SET first_letter = LOWER(LEFT(name, 1)) 

然後查詢兩個表:

SELECT a.letter, count(s.name) 
FROM alphabet a 
LEFT JOIN song s ON (a.letter = s.first_letter) 
GROUP BY a.letter