sql - SQL 查询从具有 139 列的表中删除重复项并将所有列加载到另一个表
问题描述
我需要根据 2 列从具有 139 列的表中删除重复项,并将具有 139 列的唯一行加载到另一个表中。
例如:
col1 col2 col3 .....col139
a b .............
b c .............
a b .............
o/p:
col1 col2 col3 .....col139
a b .............
b c .............
需要 DB2 的 SQL 查询?
解决方案
如果“其他表”不存在,您可以像这样创建它
CREATE TABLE othertable LIKE originaltable
并使用以下语句插入请求的行:
INSERT INTO othertable
SELECT col1,...,coln
FROM (SELECT
t.*,
ROW_NUMBER() OVER (PARTITION BY col1, col2 ORDER BY col1) AS num
FROM t) t
WHERE num = 1
有许多工具可以生成查询和列列表 - 因此,如果您不想手动编写它,可以使用这些工具生成它,或者使用另一个 SQL 语句从 Db2 目录表 (syscat.columns) 中选择它。