sql >> データベース >  >> RDS >> Mysql

1つのクエリで複数の列をカウントする

    UNION ALLができます 個別のクエリを適用し、条件付きを適用します 結果のセットの集計:

    select score,
           max(case when type = 'satisfaction' then count end) as satisfaction_count,
           max(case when type = 'response' then count end) as response_count,
           max(case when type = 'responder' then count end) as responder_count,
           max(case when type = 'service' then count end) as service_count             
    from (
      select satisfaction_score as score, 
             count(satisfaction_score) as count, 
             'satisfaction' as type
      from j_survey_response
      where satisfaction_score != 0
      group by satisfaction_score
    
      union all
    
      select response_score,
             count(response_score) as count, 'response' as type
      from j_survey_response
      where response_score != 0
      group by response_score
    
      union all
    
      select responder_score,
             count(responder_score) as count, 'responder' as type
      from j_survey_response
      where responder_score != 0
      group by responder_score
    
      union all
    
      select service_score,
             count(service_score) as count, 'service' as type
      from j_survey_response
      where service_score != 0
      group by service_score) as t
    group by score
    


    1. PostgreSQLを使用する1つのエンティティ用の複数のHibernateシーケンスジェネレータ

    2. AutoMySQLBackupを使用してMySQLデータベースをバックアップする方法

    3. テーブルを削除できません:外部キー制約が失敗します

    4. mysql_exceptions.OperationalError:(1045、ユーザー'root' @'localhost'のアクセスが拒否されました(パスワード:YESを使用))