sql - 如何使用 SQL Server 将垂直行转换为列数据
问题描述
如何将 SQL Server 表的垂直行记录转换为列数据。我尝试了一些查询,但无法达到结果。
我有一个名为的表TRANSACTIONLOG
,它有三列
CREATEDATE, TRANSACTION, COUNTS
我需要对记录进行 GROUPCREATEDATE
并将交易类型显示为一列,并将 COUNTS 作为其值。
下面是结果应该是什么样子 -
解决方案
这很容易通过一些条件聚合来实现。
SELECT CREATEDATE
, [INSERT] = MAX(case when [TRANSACTION] = 'INSERT' then COUNTS end)
, [UPDATE] = MAX(case when [TRANSACTION] = 'UPDATE' then COUNTS end)
, [DELETE] = MAX(case when [TRANSACTION] = 'DELETE' then COUNTS end)
FROM TRANSACTIONLOG
GROUP BY CREATEDATE
ORDER BY CREATEDATE
推荐阅读
- kendo-ui - Kendo UI Editor Style 正文中的所有段落
- python - 从python中的所有字典键中删除双引号
- linux - 我们如何在多个 EC2 服务器上使用相同的证书设置 SSL/TLS
- python - 将一维数组中的元素排序为三角矩阵
- javascript - 流星 1.10.2 打字稿 ValidatedMethod - this.userId
- python-2.7 - 如何将txt文件转换为Json文件?使用 python 2.7
- python - 连接来自不同泡菜文件的内容的最节省内存的方法
- git - Git 从特定分支获取更改以处理我的工作
- android - 无法设置动态部分大小:内存耗尽
- return - 无效函数不返回