sql - 如何在 x 次后增加一行

标签 sql database postgresql

我遇到一个问题,我必须将大量值放入一个遵循某种模式的表中,但我不知道从哪里开始。我需要它看起来像这样:

    table_id   second_id   type_id   default_value
    --------   ---------   -------   -------------
        1          1          1        'default'
        2          1          2        'default'
        3          1          4        'default'
        4          2          1        'default'
        5          2          2        'default'
        6          2          4        'default'

这种模式会持续一段时间,其中 table_id 每行递增一次,second_id 每三行递增一次,type_id 也每三行进行一次循环。任何帮助表示赞赏。谢谢。

最佳答案

嗯。这是首先想到的:

select row_number() over (order by id2.n, id3.n) as first_id,
       id2.n as second_id, id3.n as third_id,
       'default' as default_value
from generate_series(1, 10) id2(n) cross join
     (values (1), (2), (4)) id3(n);

关于sql - 如何在 x 次后增加一行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45090486/

相关文章:

仅在没有 FK 引用时检索的 SQL

android - SQLite 创建双列 _id

php - 根据其他两个表的比较插入到表中

sql - 如何从 Oracle 中的列中选择 10 行

sql - 如何在基于多列的表上分配唯一 ID

node.js - 我无法在环回 ORM 模型中设置唯一字段

mysql - SQL语法错误

mysql - 如何在 SQLAlchemy 中执行这个复杂的外键查询?

java - 没有给定参数的行 - Hibernate、Java

java - 使用 Spring Data 按日期排序 ASC