I need to figure out how to count the combinations of two columns while keeping the rest of the columns visible. This is what I have
select Table1.A as Column1, Table1.B as Column2, Table1.C as Column3, CASE WHEN Table1.D like '003%' THEN Table1.E ELSE Table2.A END as as Column4 FROM Table1 INNER JOIN Table2 on Table1.A = Table2.A AND Table2.X like '0002%'
The code above produces Columns 1 – Column 4 however I need a count of the combination of column 2 and column 4(which is the result of a case statement) as the example below. I don’t know how groupby will work because I will need to display all the columns. How do I produce the column of ‘Count_of_Col24’?
Column1 | Column2 | Column 3 | Column4 | Count_of_Col24 |
---|---|---|---|---|
1 | 123 | AB | BA | 1 |
2 | 123 | AC | BB | 2 |
3 | 123 | AD | BB | 2 |
Advertisement
Answer
You can try to use COUNT
window function, PARTITION BY
your logic which you want count of the combination.
SELECT t1.*, COUNT(*) OVER(PARTITION BY Column2,Column4) Count_of_Col24 FROM ( select Table1.A as Column1, Table1.B as Column2, Table1.C as Column3, CASE WHEN Table1.D like '003%' THEN Table1.E ELSE Table2.A END as as Column4 FROM Table1 INNER JOIN Table2 on Table1.A = Table2.A AND Table2.X like '0002%' ) t1