sql查询结果中的重复(重复)行

Posted

技术标签:

【中文标题】sql查询结果中的重复(重复)行【英文标题】:Duplicate (repeat) rows in sql query result 【发布时间】:2016-02-09 13:16:08 【问题描述】:

假设我有一个有两行的表

 id | value |
----+-------+
 1  |   2   |
 2  |   3   |

我想编写一个查询,该查询将根据值复制(重复)每一行。 我想要这个结果(总共 5 行):

 id | value |
----+-------+
 1  |   2   |
 1  |   2   |
 2  |   3   |
 2  |   3   |
 2  |   3   |

我使用的是 PostgreSQL 9.4。

【问题讨论】:

【参考方案1】:

你可以使用generate_series():

select t.id, t.value
from (select t.id, t.value, generate_series(1, t.value)
      from t 
     ) t;

你可以用横向连接做同样的事情:

select t.id, t.value
from t, lateral
     generate_series(1, t.value);

【讨论】:

以上是关于sql查询结果中的重复(重复)行的主要内容,如果未能解决你的问题,请参考以下文章

删除sql查询中的重复行[重复]

从 SQLite 中的 SQL 查询结果中删除重复项

sql 查询结果合并union all用法_数据库技巧

sql 如何过滤重复记录

带有重复键的 SQL 查询

AWS Athena (Presto) DISTINCT SQL 查询中的重复结果?