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

Warunkowe zapytanie agregujące z grupą według

Jesteś całkiem blisko, wystarczy umieścić warunki wewnątrz funkcji agregującej dla agregacji warunkowej, którą chcesz wykonać:

SELECT
companyID, 
COUNT(userID) AS `totalCompanyUsers`,
SUM(CASE 
  WHEN 
    TIMESTAMPDIFF(MONTH, lastLogin, NOW()) < 1 THEN 1 
  ELSE 0
END
) AS `numUsersWhoLoggedInWithinLastMonth`
FROM Users
GROUP BY companyID;

Wyniki są nadal pogrupowane według companyID , ale druga funkcja agregacji wykonuje sumę jedynek i zer w zależności od tego, czy użytkownik zalogował się w ciągu ostatniego miesiąca, czy nie.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dlaczego STRAIGHT_JOIN tak drastycznie poprawia to zapytanie i co to oznacza, gdy jest napisane po słowie kluczowym SELECT?

  2. PDO i wiązanie wielu zestawów wartości podczas wstawiania - ostatnio

  3. mysql - Jak obsłużyć wyszukiwanie zapytań ze znakami specjalnymi %(percent) i _(podkreślenie)

  4. Wstaw zawartość pliku do kolumny tabeli MySQL

  5. Laravel:Jak uzyskać niestandardowo posortowaną elokwentną kolekcję za pomocą metody whereIn?