Несколько SELECT COUNT в одном запросе MySQL
В редакторе
Несколько SELECT COUNT в одном запросе MySQL
Brain_Script
1890
2019-01-11 11:39:44
SELECT count(*) FROM table;
Запрос вернет значение, с количеством строк в таблице.
Подсчет с условием
SELECT count(*) FROM table WHERE var = 1;
Для получения нескольких значений подсчета строк с разными условиями, можно поочередно выполнить несколько запросов, например
SELECT count(*) FROM table WHERE var = 1;
SELECT count(*) FROM table WHERE var = 2;
SELECT count(*) FROM table WHERE var = 3;
актуальным становится организация запроса, с несколькими подзапросами, для получения в одном запросе сразу несколько результатов.
SELECT count(*) AS c1,
(SELECT count(*) FROM table WHERE var = 2) AS c2,
(SELECT count(*) FROM table WHERE var = 3) AS c3
FROM table WHERE var = 1;
Следующий пример запроса, содержащего несколько COUNT в одном запросе MySQL, построен несколько иначе, в нем используются конструкции IF(условие, значение1, значение2), а также суммирование SUM(). Позволяющие произвести отбор данных по заданным критериям в рамках одного запроса, затем суммировать их, и вывести несколько значений в качестве результата.
SELECT SUM(1) tatal,
SUM( IF(var = 1,1,0) ) c1,
SUM( IF(var = 2,1,0) ) c2,
SUM( IF(var = 3,1,0) ) c3
FROM table
Войдите для добавления комментария.