[英]mysql multiple counts in a single query
SELECT SUM( CASE WHEN is_half = 1 THEN 1 ELSE 0 END ) halfCount, SUM( CASE
WHEN is_half = 0 THEN 1 ELSE 0 END ) totalCount FROM employee_leave WHERE
YEAR(leave_date_from) = YEAR(CURRENT_DATE()) AND employee_id="EMP12" AND
leave_status=1
通過此查詢,我得到的結果為(如果沒有值):
halfCount | totalCount
NULL | NULL
如何獲得0而不是NULL?
所需的輸出:
halfCount | totalCount
0 | 0
假設查詢正確,則可以使用COALESCE將null更改為0 (或任何其他數字)
SELECT COALESCE(SUM( CASE WHEN is_half = 1 THEN 1 ELSE 0 END ), 0) as 'halfCount',
COALESCE(SUM( CASE WHEN is_half = 0 THEN 1 ELSE 0 END ), 0) as 'totalCount'
FROM employee_leave
WHERE YEAR(leave_date_from) = YEAR(CURRENT_DATE()
AND employee_id="EMP12"
AND leave_status=1
我不確定這是否沒有錯誤,因為我無法在我的機器上對其進行測試,但這就是如何使用COALESCE
嘗試這個
SELECT IFNULL(SUM( CASE WHEN is_half = 1 THEN 1 ELSE 0 END ),0) halfCount, IFNULL(SUM( CASE
WHEN is_half = 0 THEN 1 ELSE 0 END ),0) totalCount FROM employee_leave WHERE
YEAR(leave_date_from) = YEAR(CURRENT_DATE()) AND employee_id="EMP12" AND
leave_status=1
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.