在mysql中,我想对这些值求和并显示在同一计数列中,
我必须给一个条件来计数吗?!
status是0、1、2和3,status=2是2、3、4个计数值的总和。
我应该给什么样的条件?
我的问题:
SELECT A.STATUS, B.COUNT, B.REG_DT FROM
(SELECT 0 AS STATUS UNION ALL SELECT 1 UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4) A
LEFT JOIN (
SELECT STATUS , COUNT(*) AS COUNT, FROM TB_EXE WHERE reg_dt >= CURDATE()
GROUP BY STATUS
) B ON A.STATUS = B.STATUS
我的数据:
status | count
-----------------
0 | 1
-----------------
1 | 2
-----------------
2 | 1
-----------------
3 | 0
-----------------
4 | 2
预期结果:
status | count
-----------------
0 | 1
-----------------
1 | 2
-----------------
2 | 3
3条答案
按热度按时间g6baxovj1#
您可以在以下情况下尝试使用case
yzxexxkh2#
嗯,我想我应该用一个框架解决这个问题。例如:
这将为您提供所有前一行的运行总数作为帧计数。您可以在应用程序中处理逻辑,以确定哪些状态应使用框架计数,也可以在查询中通过添加以下内容来处理它。
ckx4rj1h3#
其中两个聚合分别处理。
或者更简洁