簡體   English   中英

計算計數,然后計算總計數MySql的總和

[英]calculate the count and then sum of total count MySql

我的查詢

$sql = 'SELECT status FROM tablename';

結果

------------
status
------------
assigned
assigned
assigned
assigned
assigned
accepted
accepted
completed
completed
completed
completed
completed

現在我可以找到每個狀態的總數

SELECT status, COUNT(status) AS cnt
FROM tname
GROUP BY b.statusName
HAVING (cnt >= 1)

這將給


status     cnt
--------------
accepted    2
assigned    5
completed   5

我如何只completed和已accepted計數?

將條件放在sum()函數中時,這稱為條件求和:

SELECT SUM(IF(status IN ('accepted','assigned'),cnt,0)) as sum_of_acc_asg
FROM    
    (SELECT status, COUNT(status) AS cnt
    FROM tname
    GROUP BY b.statusName
    HAVING (cnt > 1)) t

或者,您可以使用where首先過濾子查詢:

SELECT SUM(cnt) as sum_of_acc_asg
FROM    
    (SELECT status, COUNT(status) AS cnt
    FROM tname
    WHERE status IN ('accepted','assigned')
    GROUP BY b.statusName
    HAVING (cnt > 1)) t

其操作簡單,取代group bywhere

SELECT status, COUNT(status) AS cnt
 FROM tname 
 WHERE b.statusName IN ('completed','accepted')
 HAVING (cnt > 1)

從tname中選擇COUNT(狀態)AS cnt status =“已完成”或status =“已接受”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM