mysql - 选择 COUNT 个非零单元 mysql
问题描述
我如何计算这个查询中非零的COUNT
值?cc.audio
SELECT cc.audio FROM
(SELECT cid, SUM(mp='audio') audio, SUM(mp='text') texts, SUM(mp='video') video
FROM
( SELECT ccm.cid, cmp.cmid, cmp.mp
FROM a as ccm
INNER JOIN b as cmp
ON ccm.mid = cmp.cmid) AS tmp
GROUP BY cid) AS cc
样本:
cid audio texts video
----------------------
1 1 1 1
2 1 1 1
Expected results: 2
解决方案
你的问题表明:
SELECT COUNT(*)
FROM (
SELECT cid, SUM(mp='audio') as audio, SUM(mp='text') as texts, SUM(mp='video') as video
FROM a ccm INNER JOIN
b cmp
ON ccm.mid = cmp.cmid
GROUP BY cid
) cc
WHERE audio > 0;
尽管我简化了您的查询,但基本相同。还有其他写这个的方法,不涉及任何子查询。
推荐阅读
- css - CSS :not 父操作符
- javascript - 如果我从客户端设置了一些时间戳,而从服务器端设置了一些时间戳,如何在使用 Firestore 时实现时间戳的一致性?
- pandas - 在熊猫时间序列数据框中仅重新采样每天的前两个条形图
- mysql - 如何使用mysql查询将datagridview中的文本框列替换为复选框列
- python - 无法从 Python 函数内部访问导入的模块
- javascript - 如何在弹出窗口中使用脚本中的变量
- python - 多处理仅适用于第一次迭代
- excel - 如何在excel 2013中按日期和时间过滤日期?
- c++ - 如何在二维向量 i,j 上设置条件
- c++ - C ++:语法错误:'string'但在另一个项目中仍然编译成功?