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

Sumuj wiersze z różnych warunków w Mysql

Możesz dodać WITH ROLLUP klauzula do Twojej GROUP BY warunek taki:

SELECT
  CASE WHEN CONDITION=1 THEN 'OK' ELSE 'BAD' END AS Status,
  SUM (CASE WHEN SIZE=10 THEN 1 ELSE 0 END) AS Small,
  SUM (CASE WHEN SIZE=20 THEN 1 ELSE 0 END) AS Medium,
  SUM (CASE WHEN SIZE=30 THEN 1 ELSE 0 END) AS Large,
FROM mytable
GROUP BY Status WITH ROLLUP

Dałoby to zestaw wyników taki jak:

Status    Small    Medium    Large
OK         1         2         1
BAD        2         1         0
[NULL]     3         3         1 

Musisz zrozumieć zachowanie, w którym nie będzie żadnego Total wartość w kolumnie Status. Zamiast tego kolumna Status miałaby wartość NULL wskazującą, że jest to miejsce, w którym dokonuje się zestawienia.

Więcej informacji można znaleźć w dokumentacji tutaj:http ://dev.mysql.com/doc/refman/5.6/en/group-by-modifiers.html



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Unikalna identyfikacja znaczników ulotek

  2. Zapytanie MySQL, aby znaleźć znajomych i liczbę wspólnych znajomych

  3. MySQL:Dodaj kolumnę sekwencji na podstawie innego pola

  4. Wyrażenie regularne mySQL w klauzuli where

  5. Usuwanie wszystkich wierszy starszych niż 5 dni