MySQL: несколько COUNT() на основе разных критериев

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

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

Ответ 1

Вы используете MySQL, поэтому вы можете воспользоваться его функцией, чтобы логическое выражение оценивалось как 0 для false и 1 для true. SUM() of 1 равно a 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.