Множественный счет с несколькими столбцами - PullRequest
0 голосов
/ 06 января 2019

Я новичок в sql. Я хочу посчитать что-то вроде:

Select count(*) from table where col1= x and col2=x and Col3=x. 

Мне нужно посчитать одно и то же значение во всех разных столбцах. Любая помощь будет оценена.

1 Ответ

0 голосов
/ 06 января 2019

Вы можете использовать условное агрегирование:

Select sum(case when col1='x' then 1 else 0 end) as count_col1,
       sum(case when col2='x' then 1 else 0 end) as count_col2,
       sum(case when col3='x' then 1 else 0 end) as count_col3
  from tab;

Если вы хотите получить сумму этих значений счетчика, рассмотрите вышеупомянутый запрос как внутренний и используйте следующее:

 Select q.*,
        q.count_col1 + q.count_col2 + q.count_col3 whole_sum
   from     
     (
        Select sum(case when col1='x' then 1 else 0 end) as count_col1,
               sum(case when col2='x' then 1 else 0 end) as count_col2,
               sum(case when col3='x' then 1 else 0 end) as count_col3
          from tab  
      ) q

Rextester Demo

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