Подсчитать появление разных значений на SQL сервере - PullRequest
1 голос
/ 08 июля 2020

Как посчитать значения в столбце и после этого по результатам выбрать только строки с большим количеством вхождений?

Пример:

ссылка

Мы должны ожидать получить список книг с большим количеством «хороших» отзывов, чем «плохих»: book1 (2 количества «хороших» и 1 количество «плохих») и book3 (2 количества «хорошо»); book2 нельзя выбрать, потому что количество «хороших» и «плохих» одинаково; ни одна книга 4 не может быть выбрана - только одно «плохое».

1 Ответ

0 голосов
/ 08 июля 2020

Вы можете использовать условное агрегирование с соответствующим выражением фильтрации в предложении having:

select book
from t
group by book
having sum(case when opinion = 'good' then 1 when opinion = 'bad' then -1 end) > 0;
...