mysql - 在mySql中计算具有不同条件的表中的元素?
问题描述
我想计算用户拥有的所有订单以及用户拥有的所有完整订单。我带着这个,但它不工作
select
count(a.id) as total,
count(b.id) as complete
from
user
join
orders a on user.id = a.user_id
join
orders b on user.id = b.user_id
where
a.id = 1
and
(b.id = 1 and b.complete = 'yes');
任何的想法?
解决方案
您可以将订单与 yes 相加,并按用户计算不同的 id 组
select user.id, sum(if(a.complete ='yes',1,0)), count(distinct a.id)
from user
INNER join orders a on user.id = a.user_id
group by user.id
推荐阅读
- apache - 如何通过 mod_rewrite 替换转义的斜杠?
- java - 如何为所有活动的重要功能奠定基础
- selenium - 如何在 Chrome 浏览器的 Katalon 中处理或抑制警告“这种类型的文件可能会损害您的计算机。您要保留它吗?”
- django - django_celery_beat - “没有这样的表:main.django_celery_beat_solarschedule__old”同时更新“django_celery_beat_periodictask”
- c++ - 如何减少对大量纹理的绘图调用次数?
- python - 如何摆脱由 os.path.join 创建的转义字符?
- c# - 如何在招摇中排除请求有效负载中的属性
- python - 使用 shell scrapit 启动 pythonenvironment 并执行命令
- python - 为什么 BucketedRandomProjectionLSH 在 pyspark 中的 100 万张图像上花费这么多时间?
- c# - Selenium C# 选择 UL IL 和标签值