【问题标题】:I want to count rows of two columns with different values我想计算具有不同值的两列的行
【发布时间】:2021-12-10 17:05:26
【问题描述】:

我有两列gender(values = 'Male' , 'Female') 和grade(values = 'senior officer' , 'Junior Officer'),表名是employee。我想计算所有担任高级军官的男性和所有担任初级军官的男性,反之亦然所有女性。下面是我的代码

''' SELECT staff_gender, staff_grade COUNT(*) 
    FROM permanent_staff 
    WHERE staff_gender='Female' AND staff_grade='senior officer' '''
 

【问题讨论】:

    标签: sql


    【解决方案1】:

    聚合。

    SELECT staff_gender, staff_grade
    , COUNT(*) AS total
    FROM permanent_staff
    GROUP BY staff_gender, staff_grade
    ORDER BY staff_gender, staff_grade
    

    【讨论】:

    • 你的sql语句返回Female,因为我在python中使用了这个sql语句。我认为我的示例代码不是解决这个问题的正确方法
    • 这个 sql 应该返回 4 行。
    • 它是正确的。它返回 4 行,但我只想返回作为初级军官的男性总数
    • 这与我从问题中理解的不同。但是然后只需在 FROM 和 GROUP BY 之间为男性大三添加一个 WHERE 子句。
    • 也许看看我使用条件聚合的this recent answer
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-05
    • 1970-01-01
    • 2012-09-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多