我的表格如下:
表名:TRANSACTIONS
transactionId | accountId | technology
--------------------------------------
1 | 1 | mac
2 | 1 | linux
3 | 2 | pc
4 | 3 | linux
5 | 2 | pc
6 | 3 | linux
...
我想使用以下格式生成报告
accountId | num. pc | num. mac | num. linux
-------------------------------------------
1 | 1 | 1 | 0
2 | 1 | 0 | 1
3 | 0 | 0 | 2
...
我不是SQL专家,但我觉得我应该能够使用GROUP BY
子句来生成这些结果。是否可以在单个查询中生成此结果集?我目前正在使用MS SQL Server 2008,所以T-SQL可以工作。
谢谢!
答案 0 :(得分:2)
您可以尝试这样的事情
SELECT
accountId ,
[num. pc] = SUM(CASE WHEN technology = 'pc' THEN 1 ELSE 0 END),
[num. mac] = SUM(CASE WHEN technology = 'mac' THEN 1 ELSE 0 END),
[num. linux] = SUM(CASE WHEN technology = 'linux' THEN 1 ELSE 0 END)
FROM YourTable
GROUP BY accountId