我想通過一年來算兩場如何通過一年
我嘗試
SELECT YEAR(admit_date),COUNT(sub_case),COUNT(SK)
FROM admit
WHERE sub_case = "scase001"
AND SK = "rsk002"
GROUP BY YEAR(admit_date),sub_case,SK
但要算兩場它不是真正的
表
總
真
2014 1 0
2015 1 1
我想通過一年來算兩場如何通過一年
我嘗試
SELECT YEAR(admit_date),COUNT(sub_case),COUNT(SK)
FROM admit
WHERE sub_case = "scase001"
AND SK = "rsk002"
GROUP BY YEAR(admit_date),sub_case,SK
但要算兩場它不是真正的
表
總
真
2014 1 0
2015 1 1
刪除sub_case和SK列,您可以使用條件的聚集,而不是像這樣:
SELECT
YEAR(admit_date) AS "admit_year",
SUM(sub_case = 'scase001') AS "sub_case_count",
SUM(SK = 'rsk002') AS "sk_count"
FROM admit
GROUP BY YEAR(admit_date)
表達式對於所有匹配的行,將評估爲1,並且總結匹配與計數它們相同。以這種方式使用(或濫用)布爾表達式可能無法在其他SQL數據庫中工作,但它在MySQL中(通常會使用case when ... then .. end
表達式)。
您需要從GROUP BY
SELECT YEAR(admit_date),COUNT(sub_case),SUM(CASE WHEN SK="rsk002" THEN 1 ELSE 0 END)
FROM admit
WHERE sub_case = "scase001"
GROUP BY YEAR(admit_date)
我嘗試但只顯示2015年only.I要顯示2014年和2015年 – 2015-02-11 18:27:53
嘗試更新的版本 – arnoudhgz 2015-02-11 18:29:51
謝謝,我明白了。 – 2015-02-11 18:33:56