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

select、group by、countを使用しているときに、空でない結果セットを取得するにはどうすればよいですか?

    次のようなものを試してください:

    SELECT a.status AS ct_reconcile_status,
           (IFNULL(b.sch_change_status_num,0) + a.num) AS sch_change_status_num
    FROM
      (SELECT 'SUCCESS' AS status, 0 AS num
       UNION
       SELECT 'FAILED', 0) a
    LEFT JOIN
      (SELECT status.ct_reconcile_status, 
              COUNT(status.ct_reconcile_status) AS sch_change_status_num 
       FROM   db_crewops_cm_action status 
       WHERE  status.ct_reconcile_status IN ( 'SUCCESS', 'FAILED' ) 
              AND status.updated_ts > UTC_TIMESTAMP() - INTERVAL 60 minute 
       GROUP  BY status.ct_reconcile_status) b
    ON a.status = b.ct_reconcile_status
    

    status.ct_reconcile_status IN ( 'SUCCESS', 'FAILED' ) ANDを削除できます 、ただし、これは遅くなる可能性があります。




    1. 一意のインデックスは列検索のパフォーマンスに優れていますか? (PGSQLとMySQL)

    2. MySQLCHECK制約の代替

    3. YiiGetMySqlクエリを実行します

    4. WAMP仮想ホストが機能しない