Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Sumujące zapytanie w ostatnim wierszu

Przede wszystkim nie potrzebujesz podzapytań, możesz zamiast tego zliczyć warunek.

with rollup modyfikator można dodać do grupy group by klauzula o uwzględnienie sumy całkowitej. order by nie może być użyty w tym samym zapytaniu, ale może być zastosowany w zapytaniu zewnętrznym.

Ponadto za pomocą coalesce możesz zastąpić null wartość dla tego wiersza sumy z wybraną etykietą.

Na koniec, aby nadal posortować wiersz sumy na końcu, możesz dodać is null wyrażenie w order by klauzula, której wynikiem będzie false lub true . Ten ostatni jest zamawiany jako ostatni.

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. Tabela bazy danych nie istnieje zgodnie z kompilatorem Android Studio

  2. Zwracanie rekordów z ostatnich 3 miesięcy tylko w MySQL

  3. Jak połączyć wartości z MySQL SELECT

  4. php artisan migrować rzucanie [Wyjątek PDO] Nie można znaleźć sterownika — Korzystanie z Laravel

  5. Pobieranie najnowszego wpisu na użytkownika