Mysql
 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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Сложна MySQL заявка

  2. Как да сравняваме дати в sqlalchemy?

  3. Как първо да използвате кода на MySql и Entity Framework 4.1

  4. Как да извлека изображение от база данни в c#

  5. Mysql заявка за изтриване на дублирани коментари на Wordpress?