简体   繁体   English

我可以使用一个查询来计算SQL中的两列

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM