Mysql
 sql >> база данни >  >> RDS >> Mysql

sql получава общ и филтриран брой в една заявка

Можете да използвате Case .. When за да проверите дали points са повече от 10 за конкретен ред и ги пребройте съответно (с помощта на Sum() ).

SELECT COUNT(*) as total, 
       SUM(CASE WHEN points > 10 THEN 1 ELSE 0 END) AS winners, 
       team 
FROM users 
GROUP BY team

В MySQL можем да го съкратим допълнително като Sum() функцията може просто да прехвърля резултатите от условни оператори/функции към 0/1 (за false/true съответно):

SELECT COUNT(*) as total, 
       SUM(points > 10) AS winners, 
       team 
FROM users 
GROUP BY team


  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_config_editor с помощта на променлива в shell

  2. Doctrine QueryBuilder:Връзка ManyToOne, където трябва да съвпадат повече от едно подсъщност

  3. Как да използвам PATCH за актуализиране на просто поле на база данни?

  4. Актуализирайте колоната с произволна стойност

  5. Не мога да отворя mysql-workbench