sql >> Database teknologi >  >> RDS >> Sqlserver

VÆLG forespørgsel med flere underforespørgsler til tællinger

Her er en måde at gøre det på uden alle underforespørgsler

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'

Jeg ryddede også lidt op i forespørgslen, fjernede gruppen med, da dette altid vil være 1, og ændrede datosammenligningen for at undgå at bruge rodet mellem logik (tak Aaron for kommentaren)



  1. Forskel i MySQL JOIN vs LEFT JOIN

  2. Omdøb kolonne returnerer fejl

  3. Kan ikke oprette forbindelse til ekstern MySQL-server med fejl 61

  4. JPA-mapping til Oracle brugerdefinerede typer