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

カウント用の複数のサブクエリを含む SELECT クエリ

    すべてのサブクエリなしでそれを行う方法は次のとおりです

    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'
    

    また、クエリを少しクリーンアップし、これが常に 1 になるように group by を削除し、日付の比較を変更してロジック間の乱雑さを使用しないようにしました (コメントの Aaron に感謝します)



    1. ランニング乗算を見つける方法

    2. varcharとnvarcharSQLServerデータ型の主なパフォーマンスの違いは何ですか?

    3. リレーションテーブルのクエリを支援する

    4. リレーショナル (正規化) データ テーブルを SQL Server 2008 データベースに高速挿入