sql >> Databáze >  >> RDS >> Mysql

Jak mohu získat neprázdnou sadu výsledků při použití výběru, seskupení a počítání?

Zkuste něco jako:

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

Můžete odstranit status.ct_reconcile_status IN ( 'SUCCESS', 'FAILED' ) AND , ale mohlo by to být pomalejší.




  1. Jak INTERSECT funguje v PostgreSQL

  2. Dotaz SQL pro provádění vyhledávání poloměru na základě zeměpisné šířky a délky

  3. AKTUALIZUJTE sloupec na základě hodnoty jiného sloupce ve stejné tabulce

  4. Existuje způsob, jak ignorovat sloupce, které na INSERT neexistují?