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

Zliczanie wielu wierszy w MySQL w jednym zapytaniu

SELECT item_id, operation, COUNT(*) 
FROM stats 
WHERE operation IN ('view','purchase','download') 
GROUP BY item_id, operation

Zwróci tabelę z jednym wierszem na identyfikator elementu i operację , zawierający trzy kolumny:item_id, typ operacji i liczbę wierszy z tym item_id.

1 view 3
1 purchase 5
2 download 7
3 download 1

Możesz pominąć WHERE, jeśli chcesz wszystkie item_id, i możesz zamówić w COUNT(*), aby uzyskać najpopularniejsze lub coś takiego. Zależy, czego szukasz i jak korzystasz z danych.

Jeśli chcesz, aby kolumny były obok siebie , użyj JEŻELI:

SELECT s1.item_id, SUM( IF( s1.operation = 'view', 1, 0 ) ) views, SUM( IF( s1.operation = 'download', 1, 0 ) ) downloads, SUM( IF( s1.operation = 'purchase', 1, 0 ) ) purchases
FROM stats s1
GROUP BY s1.item_id

item_id | views | downloads | purchases
1 | 3 | 0 | 5
2 | 0 | 7 | 0
3 | 0 | 1 | 0



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Erlang emysql iPhone Problem z kodowaniem emotikonów

  2. Znajdź zakresy dat nakładające się w tej samej tabeli dla określonego użytkownika MySQL

  3. skompresuj tekst przed zapisaniem w bazie mysql

  4. MySQLi odpowiednik kodu MySQL

  5. Współbieżność MySQL, jak to działa i czy muszę to obsługiwać w mojej aplikacji?