postgresql 缺少年份-替换为空行

9wbgstp7  于 2022-11-04  发布在  PostgreSQL
关注(0)|答案(1)|浏览(121)

我正在尝试检索一些数据,如下所示:
| 标识符|年份|价值|
| - -|- -|- -|
| 一个|二〇一五年|二百个|
| 一个|二〇一六年|三千人|
| 一个|二〇一八年|500个|
| 2个|二〇一〇年|四百五十五人|
| 2个|二〇一五年|六百七十八|
| 2个|小行星2020| 100个|
正如你所看到的,有些年份丢失了--我想添加缺少年份的行,列值为空,我想根据特定的id来做--有什么想法吗?

zzzyeukh

zzzyeukh1#

您可以将GENERATE_SERIES()与左结合结合,以展开缺少的年份。例如:

select x.id, x.y, t.value
from (select id, generate_series(min(year), max(year)) as y from t group by id) x
left join t on t.id = x.id and t.year = x.y

结果:

id  y     value 
 --- ----- ----- 
 1   2015  200   
 1   2016  3000  
 1   2017  null  
 1   2018  500   
 2   2010  455   
 2   2011  null  
 2   2012  null  
 2   2013  null  
 2   2014  null  
 2   2015  678   
 2   2016  null  
 2   2017  null  
 2   2018  null  
 2   2019  null  
 2   2020  100

相关问题