【发布时间】:2014-03-16 22:23:57
【问题描述】:
鉴于此表:
SELECT * FROM CommodityPricing order by dateField
"SILVER";60.45;"2002-01-01"
"GOLD";130.45;"2002-01-01"
"COPPER";96.45;"2002-01-01"
"SILVER";70.45;"2003-01-01"
"GOLD";140.45;"2003-01-01"
"COPPER";99.45;"2003-01-01"
"GOLD";150.45;"2004-01-01"
"MERCURY";60;"2004-01-01"
"SILVER";80.45;"2004-01-01"
自 2004 年起,铜被淘汰,汞被引入。
如何将(array_agg(value order by date desc) ) [1] 的值作为NULL 获取COPPER 的值?
select commodity,(array_agg(value order by date desc) ) --[1]
from CommodityPricing
group by commodity
"COPPER";"{99.45,96.45}"
"GOLD";"{150.45,140.45,130.45}"
"MERCURY";"{60}"
"SILVER";"{80.45,70.45,60.45}"
【问题讨论】:
-
此示例数据的 SQLFiddle:sqlfiddle.com/#!15/f27f4
标签: postgresql null group-by left-join generate-series