Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Опитвам се да създам статичен клас на база данни, до който имам достъп от всяка функция извън класа

  2. SQL търсене на множество стойности в едно и също поле

  3. Проверете за стойност в реда на MySQL

  4. Odd IntegrityError на MySQL:#1452

  5. Има ли някаква вреда при нулирането на автоматичното увеличение?