sql - 基于相同的键将多行合并为一行
问题描述
我有以下数据集:
key column1 column2 column3
20171021 1 0 0
20171021 0 1 0
20171021 0 0 1
如您所见,所有行的键都是相同的。
我需要以下输出:
key column1 column2 column3
20171021 1 1 1
谁能帮我写一个完成这个的sql语句?
解决方案
这看起来像一个简单的聚合查询:
SELECT [key], MAX(column1) column1, MAX(column2) column2, MAX(column3) column3
FROM mytable
GROUP BY [key]
注意:我使用了聚合函数MAX()
,但鉴于您的示例数据,它也可能是SUM()
您需要的;选择一个适合您的用例。
推荐阅读
- git - GIT - 致命:不能使用 .idea/ 作为排除文件
- jquery - 如果用户名和电子邮件都可用,如何显示按钮
- java - FireFox 无法在 ws://1.1.1.26:81 建立与服务器的连接
- inno-setup - 将包含引号的命令行参数传递给安装程序
- linux - 复制名称中包含偶数的文件 - bash
- sql-server - SELECT 语句上的 SQL Server 消息 511 错误
- google-cloud-platform - 增加单个计算和计费的 vCPU 数量
- javascript - 查找是否选择了按钮
- sql - 如何在 SQL 中将单个数字与一系列数字进行比较
- html - 带有 CSS 的 HTML 中的简单文本滑块