[英]Can I use one query to count two columns in SQL
I have 我有
office
office_id name
--------- -----------------
1 office1
2 office2
3 office3
person
uid office_id age gender
---------------------------
1 1 20 male
2 1 20 female
3 1 20 male
4 1 21 male
5 2 20 male
6 3 20 male
Is it possible I can use ONE query to get
是否有可能我可以使用一个查询来获取
office_id name age_20 male
-----------------------------
1 office1 3 3
2 office2 1 1
3 office3 1 1
Yes, you can. 是的你可以。 MySQL support boolean arithmethic and I think this is the shortest way to do it.
MySQL支持boolean arithmethic,我认为这是最简单的方法。 If you want a more RDBMS friendly, use
CASE WHEN age = 20 THEN 1 ELSE 0 END
. 如果你想要更友好的RDBMS,请使用
CASE WHEN age = 20 THEN 1 ELSE 0 END
。
SELECT a.office_ID,
a.name,
SUM(age = 20) age_20,
SUM(gender = 'Male') male
FROM office a
LEFT JOIN person b
ON a.Office_ID = b.office_ID
GROUP BY a.office_ID, a.name
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.