SELECT customerID, [1], [2], [3], [4]
FROM
(
SELECT customerID, status
FROM tbl
) src
PIVOT
(
COUNT(status) FOR status IN ([1], [2], [3], [4])
) pvt;
customerID
1
2
3
4
XXX
2
1
1
1
YYY
0
2
0
1
…
hidden batch(es)
SELECT customerID,
SUM(CASE WHEN status = 1 THEN 1 ELSE 0 END) Status1,
SUM(CASE WHEN status = 2 THEN 1 ELSE 0 END) Status2,
SUM(CASE WHEN status = 3 THEN 1 ELSE 0 END) Status3,
SUM(CASE WHEN status = 4 THEN 1 ELSE 0 END) Status4
FROM tbl
GROUP BY customerID;