2014-10-17 88 views
0

我在編寫mysql代碼並找不到解決方案。SQL不顯示所有行

問題是「列出各種課程標題,併爲每門課程註冊女生數量,按降序排列名單」。

有2個課程,一個是軟件工程,另一個是信息系統。

有6名女學生在數據庫中,所有6個做IT和英語(顯示12項結果都在一起)

當我做下面的SQL語句,

SELECT courseTitle, sex 
FROM Course, Student 
WHERE sex = 'f'; 

它會顯示所有參與IT和英語的女性(有12個實例)。

然而,當我使用計數顯示有多少女性做SE多少做的是,

SELECT courseTitle, COUNT(sex) as sex 
FROM Course, Student 
WHERE sex = 'f'; 

只顯示一個過程標題(SE),並顯示數字12(使12名女),但它不顯示其他課程名稱(IS)。

答案應該顯示6爲SE和6爲IS和我是在一個死衚衕,爲什麼這是行不通的。

謝謝

+0

請批准編輯以使其更易於閱讀。 – 2014-10-17 14:05:07

+2

你需要一個group by子句來分開計數。 – 2014-10-17 14:05:10

+0

附註與'group by'一起使用顯式連接,而不是隱式連接。 – 2014-10-17 14:08:03

回答

4

您需要通過條款

SELECT courseTitle, 
     COUNT(sex) as sex 
FROM Course, Student WHERE sex = 'f' 
group by courseTitle; 

這將顯示每個courseTitle行補充,而不是在整個計數找到的數據集的一組。