【问题标题】:sql query for count gentlemen married,unmarried & ladies married,unmarried where gender=Male and gender =femalesql查询计数先生已婚,未婚和女士已婚,未婚,其中性别=男性和性别=女性
【发布时间】:2022-01-22 14:57:36
【问题描述】:

我正在使用 PostgreSQL。我要数数:

  1. 已婚先生未婚where gender='M'
  2. 已婚女士和未婚女士where gender='F'
  3. 已婚总数和未婚总数。

我只能执行已婚先生和未婚先生或已婚女士和未婚女士where gender=? 但是,我无法执行以下整个查询。所以,任何人都可以请给我有关以下代码的更正。

SELECT COUNT(CASE
               WHEN married = 'M' THEN
                1
             END) AS gentlemen_married WHERE gender = 'M',
       COUNT(CASE
               WHEN married = 'U' THEN
                1
             END) AS gentlemen_unmarried WHERE gender = 'M',
       COUNT(CASE
               WHEN married = 'M' THEN
                1
             END) AS ladies_married WHERE gender = 'F',
       COUNT(CASE
               WHEN married = 'U' THEN
                1
             END) AS ladies_unmarried WHERE gender = 'F',
       COUNT(*) AS married_COUNT WHERE married = 'M',
       COUNT(*) AS unmarried_COUNT WHERE married = 'U'
  FROM station
 WHERE group = 'abc';

【问题讨论】:

    标签: sql postgresql-9.5


    【解决方案1】:

    我尝试了很多方法,最后,下面的代码对我有用:

    SELECT Sum(CASE
                 WHEN married = 'M'
                      AND gender = 'M' THEN 1
                 ELSE 0
               END) AS gentlemen_married,
           Sum(CASE
                 WHEN married = 'U'
                      AND gender = 'M' THEN 1
                 ELSE 0
               END) AS gentlemen_unmarried,
           Sum(CASE
                 WHEN married = 'M'
                      AND gender = 'F' THEN 1
                 ELSE 0
               END) AS ladies_married,
           Sum(CASE
                 WHEN married = 'U'
                      AND gender = 'F' THEN 1
                 ELSE 0
               END) AS ladies_unmarried,
           Sum(CASE
                 WHEN married = 'M' THEN 1
                 ELSE 0
               END) AS married_count,
           Sum(CASE
                 WHEN married = 'U' THEN 1
                 ELSE 0
               END) AS unmarried_count
    FROM   station
    WHERE  rrcode = 'abc'; 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-06-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 1970-01-01
      • 2022-12-12
      • 2011-03-04
      相关资源
      最近更新 更多