小编bel*_*y24的帖子

用零填充 PostgreSQL 中缺失的日期

我在 PostgreSQL 中有一个这样的查询:

select count(id_student) students, date_beginning_course from 
data.sessions_courses
left join my_schema.students on id_session_course=id_sesion 
where course_name='First course'
group by date_beginning_course
Run Code Online (Sandbox Code Playgroud)

我通过此查询获得的是在多个日期参加“第一门课程”课程的学生人数,例如:

Students  Date_beginning_course
____________________________________

5         2019-06-26
1         2019-06-28
5         2019-06-30
6         2019-07-01
2         2019-07-02
Run Code Online (Sandbox Code Playgroud)

我想用缺失的日期值填充此表,并且对于每个缺失的值,在“学生”列中指定“0”,因为该日期没有学生。例子:

Students  Date_beginning_course
____________________________________

5         2019-06-26
0         2019-06-27  <--new row
1         2019-06-28
0         2019-06-29  <--new row
5         2019-06-30
6         2019-07-01
2         2019-07-02
Run Code Online (Sandbox Code Playgroud)

你可以帮帮我吗?谢谢!:)

sql postgresql left-join date-arithmetic gaps-and-islands

4
推荐指数
1
解决办法
3727
查看次数

PostgreSQL:获取每组的第一个非空值

我想获得的是每个类别第一次出现非空值。如果只有空值,则该类别的结果应为 NULL。

对于这样的表:

Category    Value
1           NULL
1           1922
2           23
2           99
3           NULL
3           NULL
Run Code Online (Sandbox Code Playgroud)

结果应该是

Category    Value
1           1922
2           23
3           NULL
Run Code Online (Sandbox Code Playgroud)

如何使用 postgres 实现这一点?

postgresql partition

2
推荐指数
1
解决办法
1969
查看次数