2015-12-02 65 views
2

利用下面的「STUDENT」表,編寫一個返回兩列的查詢:第一列命名爲「SMITH」,它應返回姓氏爲「Smith;」的學生的數量。第二列被命名爲「NOT_SMITH」,並且它應該返回沒有姓氏「Smith」的學生的數量。在選擇中創建新列

這是我嘗試的項目,但我無法弄清楚如何完成它。我試圖查看如何完成這個,但我不知道這個特定的函數會被調用。

我知道這是不正確的,但這裏是我開始:

SELECT COUNT(*) FROM STUDENT 
CASE 
WHEN LAST_NAME = 'SMITH' THEN "SMITH" 
WHEN LAST_NAME != 'SMITH' THEN "NOT_SMITH" 
GROUP BY COUNT AS 

雖然我相信計數會出來正確的,這將不提供所需的所有列。

目前列student_id數據,LAST_NAME,FIRST_NAME

請讓我知道如果任何進一步的信息是有幫助的。

預先感謝您!

回答

1

可以使用條件和

SELECT SUM(CASE WHEN LAST_NAME = 'SMITH' THEN 1 ELSE 0 END) as SmithCount, 
     SUM(CASE WHEN LAST_NAME = 'SMITH' THEN 0 ELSE 1 END) as notSmithCount 
FROM Student 

要當心,如果你想指望NULLsnotSmithCount

+0

完美!謝謝! – ADKCourage