В SQL есть выразительный способ подсчитать, сколько значения отличаются от 'x'
:Совокупные считать значения, равные постоянной
SELECT COUNT(NULLIF(col, 'x')) FROM table
Я считаю, что менее элегантно рассчитывать значения, равные 'x'
:
SELECT COUNT(*) - COUNT(NULLIF(col, 'x')) FROM table
SELECT SUM(CASE WHEN col = 'x' THEN 1 ELSE 0 END) FROM table
- [оракула]
SELECT COUNT(DECODE(col,'x','x',NULL)) FROM table
Есть ли более элегантный способ сделать это?
почему не 'SELECT COUNT (*) из таблицы, где столбец =«x''? –
@ Roman: вы правы, вопрос кажется глупым. Но здесь мне нужно выполнить несколько подсчетов в одном запросе: 'select count_if (col, 'x'), count_if (col, 'y'), count_if (col, 'z') FROM table' – Benoit
@Roman' select count (*) из таблицы, где col <> 'x'' не подсчитывает строки, где col равно null. –