【问题标题】:Creating a migration for building a table whose columns are derived from rows of another table创建迁移以构建表,该表的列派生自另一个表的行
【发布时间】:2014-08-02 12:31:10
【问题描述】:

有没有办法(除了手动输入迁移)在 Rails 中创建一个新表,其中列名来自另一个表的列值?这将是一个宽表(约 100 列),所以我真的很想避免手动执行此操作。

现有表如下所示:

 -----------
| nameCol |
-----------
| A       |
| A       |
| B       |
| C       |
-----------

我想创建另一个如下所示的表:

| pk | A | B | C |

目前正在使用 sqlite。

【问题讨论】:

    标签: sql ruby-on-rails sqlite pivot


    【解决方案1】:

    我会像使用 group_concat 一样运行查询 -

    select group_concat(distinct namecol) as namecols
    from tbl
    

    http://sqlfiddle.com/#!5/57f05/3/0

    然后将结果导入 Excel 并使用文本到列:

    使用逗号作为分隔符。

    然后在第一列名称下方(在创建表语句之间)编写一个公式,如下所示:

    将公式复制到最后一列。从最后一个单元格中的公式中删除逗号,因为它是列表中的最后一列。从左到右复制代表 create table 语句的单元格,并使用它来创建表。

    excel文件示例,链接有效期为2天:

    example.xlsx: http://shwivel.synology.me:5000/fbsharing/xE336ePi 失效日期:2014-08-04

    【讨论】:

      猜你喜欢
      • 2023-03-24
      • 1970-01-01
      • 1970-01-01
      • 2014-12-03
      • 2013-07-19
      • 1970-01-01
      • 1970-01-01
      • 2017-01-08
      • 2020-04-20
      相关资源
      最近更新 更多