如果mysql为Null,则获取包含计数的组名
我正在尝试将状态计数获取为0,该计数不在表中: 我的表格:如果mysql为Null,则获取包含计数的组名,mysql,Mysql,我正在尝试将状态计数获取为0,该计数不在表中: 我的表格: id | status | ---------------------- 1 Open 2 Closed 3 Closed 4 Open ---------------------- 预期结果: statusname | statuscount | --------------------------------- Ope
id | status |
----------------------
1 Open
2 Closed
3 Closed
4 Open
----------------------
预期结果:
statusname | statuscount |
---------------------------------
Open 2
Closed 2
Cancelled 0
Rejected 0
---------------------------------
我试过:
SELECT COUNT(status), status FROM in_e_s_s__p_c_ns
WHERE status IN ("Open","Closed","Rejected","Cancelled") GROUP BY status
您需要有一个交付的表方法和一个左连接,这样才能工作
SELECT
status_records.status AS statusname
, COUNT(*) AS statuscount
FROM (
SELECT
'Open' AS status
UNION ALL
SELECT
'Closed' AS status
UNION ALL
SELECT
'Rejected' AS status
UNION ALL
SELECT
'Cancelled' AS status
) AS status_records
LEFT JOIN
myTable
ON
status_records.status = myTable.status
GROUP BY
status_records.status
您是如何在预期输出中获得statusname“Cancelled”和“Rejected”的,这与示例数据有何关系?这里没有所谓的“取消”和“拒绝”。。或者“取消”和“拒绝”是由(“打开”、“关闭”、“拒绝”、“取消”)中的
生成的,这意味着它应该是动态的吗?我使用上述四种状态。如果表中不存在状态名称Cancelled and Rejected,则应将其视为0