sql - 需要查询以不同的方式显示数据

标签 sql postgresql

进行查询后,我得到以下格式的数据:

Start data

我需要设置一个查询,将与相同 ID 相关的日期配对并计算天数差异。 结果应该是这样的:

Desired output

我正在使用 postgresql。您能帮我设置查询以获得所需的输出吗? 提前致谢

最佳答案

嗯。 。 。我正在考虑 lead() 和一些额外的过滤和算术:

select id, date as date_start, next_date as date_end,
       (next_date - date_start) as days
from (select t.*, lead(date) over (partition by id order by date) as next_date
      from t
     ) t
where event = 0;

关于sql - 需要查询以不同的方式显示数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63404625/

相关文章:

mysql - 如何从 2x LEFT JOIN 计算字段数据

sql - 查找用户在排序表中的位置

sql - PostgreSQL - 动态值作为表名

sql - 是否可以执行按位分组功能?

sql - SQL语法区分大小写吗?

sql - 消除具有反转值的列的行

sql - 存储过程 SQL 执行计划

Python SQLAlchemy 和 Postgres - 如何使用 json 值中的子字符串进行搜索

Postgresql - SQL 查询列出数据库中的所有序列

php - 在列而不是行中显示 php 查询