sql - 使用查询创建新列

标签 sql postgresql

我有一张满是日期的表格,日期是唯一的,但对于每个日期,我都希望有数字 1-3。所以现在所有日期都是不同的,但我的目标是有一个新列,其中每个日期有 3 行,而不是数字 1-3。

现在我的 table 看起来像这样:

Date
1/1/2016
2/1/2016

我想要的是:

Date     | Number
1/1/2016 | 1
1/1/2016 | 2
1/1/2016 | 3
2/1/2016 | 1
2/1/2016 | 2
2/1/2016 | 3

这可以通过查询实现吗?

最佳答案

cross join with generate_series

select d.dt,n.num
from dates_tbl d
cross join generate_series(1,3) n(num)

关于sql - 使用查询创建新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48634173/

相关文章:

database - 从 Postgres sql 文件恢复

ruby - 如何在 Sequel Postgresql 迁移中定义 ARRAY 列?

sql - PostgreSQL - 如何选择组函数的每一行?

sql - Access 查询在 "select"模式下运行顺利,在 "make table"模式下失败

sql - Redshift 中的溢出错误

PostgreSQL:使用 psql 命令远程连接到 Postgres 实例

mysql 用函数替换子选择 - 查询永远不会返回

c# - 设置 DataLoadOptions 时,LINQ 返回错误的项目数

sql - 将文本字段中的时间值与当前时间进行比较

mysql - MYSQL 的 Liquibase 脚本