Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zapytanie SELECT z wieloma podzapytaniami dla liczenia

Oto sposób na zrobienie tego bez wszystkich podzapytań

SELECT  Count(r.id) AS cnt_total,
        sum(case when r.action = 'notnow' then 1 else 0 end) as 'cnt_notnow',
        sum(case when r.action = 'insert' then 1 else 0 end) as 'cnt_insert',
        sum(case when r.action = 'update' then 1 else 0 end) as 'cnt_update',
        sum(case when r.action = 'verify' then 1 else 0 end) as 'cnt_verify'        
FROM    auto_reminders_members r

WHERE  r.reminder_id = 1
       AND CONVERT(DATE, r.date_last_reminder) = '20130328'

Wyczyściłem też nieco zapytanie, usuwając grupę o, ponieważ zawsze będzie to 1, i zmieniając porównanie dat, aby uniknąć bałaganu między logiką (Dzięki Aaronowi za komentarz)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Uzyskaj tylko datę z datetime sql bez konwersji na varchar, abym mógł ją posortować w programie Excel

  2. Zwracanie wielu tabel z procedury składowanej

  3. Zautomatyzuj przywracanie testowe bazy danych w SQL Server

  4. Uzyskaj język aktualnie używany w SQL Server

  5. Najszybszy sposób sprawdzenia, czy znak jest cyfrą?