Ayesa Jannat
Ayesa Jannat

Reputation: 3

Multiple Count with Multiple column

I am new in sql. I want to count something like:

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

I need to count the same value in all different column. Any help will be appreciated.

Upvotes: 0

Views: 56

Answers (1)

Barbaros Özhan
Barbaros Özhan

Reputation: 65228

You can use conditional aggregation :

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;

If you want to have sum of these count values, consider the above query as an inner and use the following :

 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

Upvotes: 2

Related Questions