MySQL: несколько COUNT () на основе различных критериев - PullRequest
11 голосов
/ 21 августа 2009

Хорошо, поэтому я пытаюсь выполнить разные COUNT () для одной и той же таблицы на основе разных критериев без вложенных запросов (эффективность) или подзапросов (чтобы их можно было превратить в представление). Возможно ли это?

Пример: в таблице есть столбец даты - запрос должен иметь возможность подсчитывать количество строк до и после постоянной даты.

1 Ответ

31 голосов
/ 21 августа 2009

Вы используете MySQL, поэтому вы можете воспользоваться его функцией, заключающейся в том, что логическое выражение оценивается как 0 для false и 1 для true. SUM() из 1 равно COUNT(), где выражение истинно.

SELECT SUM( date_column < '2009-08-21' ) AS prior_to_date,
       SUM( date_column > '2009-08-21' ) AS after_date
FROM MyTable;

PS: не пытайтесь делать это с базами данных других марок, поддерживающими стандартное поведение SQL, то есть логическое выражение дает логическое значение, а не целое число 0 или 1.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...