mysql - mysql 为多个条件选择计数
问题描述
我有一个包含元素的表。
每个元素都有它的 parent instance_id
、 a number_of_lines
of code 和 a deletion_date
when removed。
我构建了一个查询,该查询对按实例分组的元素进行计数,其中包含具有代码(number_of_lines
非零)和已删除元素(deletion_date
非空)的元素的总数
SELECT instance_id,
COUNT(id) AS elementsfound,
COUNT(NULLIF(number_of_lines,0)) AS havecode,
(COUNT(id)-COUNT(NULLIF(number_of_lines,0))) AS havenocode,
COUNT(deletion_date) AS beenremoved,
(COUNT(id)-COUNT(deletion_date)) AS stillexistent
FROM elements
GROUP BY instance_id
我得到(缩写)的正确结果
+-------------+---------------+----------+------------+-------------+---------------+
| instance_id | elementsfound | havecode | havenocode | beenremoved | stillexistent |
+-------------+---------------+----------+------------+-------------+---------------+
| 59 | 93123 | 24109 | 69014 | 45397 | 47726 |
| 69 | 46399 | 7837 | 38562 | 23929 | 22470 |
| 71 | 41752 | 8746 | 33006 | 6960 | 34792 |
| 75 | 29097 | 4303 | 24794 | 13670 | 15427 |
| 77 | 41681 | 9858 | 31823 | 10540 | 31141 |
| 79 | 17800 | 695 | 17105 | 13391 | 4409 |
| 82 | 25323 | 2481 | 22842 | 20914 | 4409 |
| 83 | 12831 | 2544 | 10287 | 2988 | 9843 |
...
现在,我想添加一个列,其中包含每个实例仍然存在(deletion_date
为空)并且具有代码(number_of_lines
不同于零)的元素数
我发现没有办法添加 aNULLIF
或 aCASE WHEN
与多列。
如何包含多列条件计数器?
解决方案
你想做吗?
sum( if(deletion_date is null and number_of_lines!=0, 1, 0) )
推荐阅读
- wordpress - 如何在 Elementor Wordpress 上删除正文元素
- android - 测试卡总是批准不显示
- c# - 如何帮助我的控制台应用程序找到所有引用的程序集?
- ios - 从 appdelegate 启动 contentview
- performance - 更改 woocommerce 变体产品的图像背景颜色。这行得通,但是有超过 80 种不同的颜色可以让它更快
- javascript - Webpack 将错误的图像加载到 dist 目录
- java - Spring MVC Restful Application 错误 404。为什么?
- flutter - 如何在 Flutter 中将字符串格式的日期转换为时间戳
- r - 如果在用户函数中应用过滤器与没有过滤器,则某些组的结果不同
- flutter - 在有状态的小部件中,颤振字段不能是最终的