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

最後の行の合計クエリ

    まず、サブクエリは必要ありません。代わりに、条件をカウントできます。

    with rollup 修飾子はgroup byに追加できます 総計を含める条項。 order by その場合、同じクエリで使用することはできませんが、外部クエリで適用することはできます。

    さらに、coalesceを使用して nullを置き換えることができます 選択したラベルが付いたその合計行の値。

    最後に、最後に行全体を並べ替えるには、is nullを追加します。 order byの式 falseと評価される句 またはtrue 。後者は最後に注文されます。

    select coalesce(checkby, 'Total') as checkby_or_total,
           fully,
           faulty,
           lasthour, 
           total 
    from   (
            select   qcheck.checkby,
                     count(case result when 'fully tested & working' then 1 end)     as fully,
                     count(case result when 'faulty' then 1 end)                     as faulty,
                     count(case when finishdate >= now()-interval 1 hour then 1 end) as lasthour,
                     count(*) as total 
            from     qcheck
            where    date(finishdate) = CURDATE() 
            and      qcheck.checkby not like 'michael' 
            and      qcheck.checkby not like 'chaz'
            group by qcheck.checkby with rollup
            ) as main
    order by    checkby is null, 
                total desc 
    



    1. エラーで失敗するクエリの更新:1175

    2. SQLで連続する行を複数の列でグループ化する方法

    3. MySQLデータ型をJavaDate()に対応させる

    4. テキストベースのmysqlUIはありますか?