postgresql - 在 PostgreSQL 中为每个 ID 添加日期
问题描述
我有一个看起来像这样的表“用户”
id name
1 Johny
2 Michael
3 Jony
我想添加名为日期的新列,
date
2021-01-01
2021-02-01
但我想要每个 id 的日期
id name date
1 Johny 2021-01-01
1 Johny 2021-02-01
2 Michael 2021-01-01
2 Michael 2021-02-01
3 Jony 2021-01-01
3 Jony 2021-02-01
这个怎么做 ?
解决方案
似乎您想在现有表users
与另一个表或某个伪表之间进行交叉连接。
这是使用伪表的方法(我已别名为d
)
select u.id, u.name, d.date
from
users u
cross join
(
select TO_DATE('2021-01-01', 'YYYY-MM-DD') as date
union
select TO_DATE('2021-02-01', 'YYYY-MM-DD')
) as d;
这将在两个表之间产生所有排列(#users x #dates)
推荐阅读
- sql - 选择 1% 的不同值
- oracle - Payara docker 与 oracle 数据库连接
- amazon-web-services - AWS Cloudwatch 洞察查询上的 Stat 操作以从 JSON 数组中获取字段值
- javascript - 提交时清除 React 中的表单字段
- r - 在 R 中使用比较运算符强制命名(dplyr、rlang、tidy)
- reactjs - React Calculator:多点问题和方程问题
- c# - 使用 Xamarin Forms App(C#、Android 模拟器)连接到 AWS RDS MySQL 数据库时出现问题
- java - 如何在 Java 中使用 Unicode 字符填充字符串
- sql - Postgresql 行到 json 作为值数组(没有键)
- kentico - A 标签内的 Divs 和 H 标签