I have this query:
x
SELECT X, COUNT(*) AS TotalCount
FROM Table GROUP BY X, Y
ORDER BY X asc
It’s returning:
X | Count
__________
A | 10
A | 11
A | 1
B | 2
B | 5
B | 6
I’m trying to make it like this, if anyone could help me, thanks
X | Count1 | Count2 | Count3
A | 10 | 11 | 1
B | 2 | 6 | 5
Advertisement
Answer
You can pivot using conditional aggregation:
select x,
sum(case when y = @val1 then 1 else 0 end),
sum(case when y = @val2 then 1 else 0 end),
sum(case when y = @val3 then 1 else 0 end)
from t
group by x;
It is unclear what the specific values are that go into each column.