我正在构建一个从数据库中提取值的大表。我想在新表中包含的两个字段存储在另一个表的单个列中。我想将当前表中的此字段拆分为新表中的两列。理想情况下,我会将此作为更大的选择语句的一部分,但除此之外,我可以使用 CTE 或临时表。
例如,数据是这样存储的:
CREATE TABLE foo(id,title,type)
AS VALUES
( 1, 'Book Title 1', 'Book' ),
( 2, 'Book Title 2', 'Book' ),
( 1, 'Chapter 1', 'Chapter' ),
( 1, 'Chapter 2', 'Chapter' ),
( 2, 'Chapter 1', 'Chapter' );
我希望我的新表是这样的:
|Book | Chapter |
--------------------------------
| Book Title 1 | Chapter 1 |
| Book Title 1 | Chapter 2 |
| Book Title 2 | Chapter 1 |
如何编写可以执行此转换的 SQL 查询?
这种类型的转换可以作为更大的 SQL 查询的一部分完成,还是我应该创建表然后将其连接到我的其他表?
或者我应该导出数据并用 R 重塑它并将其加载回数据库?
我想你想要一个像这样的自我加入,
如果
subtitles
都是chapters
,你也可以这样做您可以分别选择书籍和章节,然后在 id 上将它们重新组合在一起。