несколько случаев и количество

#sql

Вопрос:

 select    Count(case   when col.1='aa' and col.2 = 'True' THEN ???  when col.1='bb' and col.2 = 'True' THEN ???    else 0  end)    from table  

Примечание — col.2 всегда должен быть «Истинным»

Я хочу, чтобы предложение select возвращало количество всех записей, в которых «aa» в кол.1 указано как » всего нет. из aa» , «bb» в колонке 2 как «общее количество bb»

Ответ №1:

Я думаю group by , что это самый простой метод:

 select col1, count(*) from t where col2 = 'True' group by col1;  

Это помещает результаты в разные строки. Если вам нужны разные столбцы, то:

 select sum(case when col1 = 'aa' then 1 else 0 end) as aa,  sum(case when col1 = 'bb' then 1 else 0 end) as bb from t where col2 = 'True';  

Я не вижу причин включать сравнение с 'True' в case выражение.

Ответ №2:

ты хочешь этого

 select col1,count(*) from ( select   case   when col.1='aa' and col.2 = 'True' THEN ???  when col.1='bb' and col.2 = 'True' THEN ???    else 0  end col1  from table)set  group by col1