[英]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 by
由where
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.