我经常编写查询,其中我将数据透视并最终以我想要折叠的NULL值结束。例如。像数据如下:在Oracle查询中折叠空值
id time_in time_out
1 2009-11-01
1 2009-10-30
2 2008-12-15
2 2009-02-03
然后我做了一个外部查询,像这样:
SELECT id,
MIN(time_in) AS time_in,
MIN(time_out) AS time_out
FROM (...query above...)
GROUP BY id
这将产生的数据是这样的:
id time_in time_out
1 2009-10-30 2009-11-01
2 2008-12-15 2009-02-03
的问题是,我使用的是有限的接口访问Oracle数据库,并且使用MIN
和MAX
的查询通常超时。我想知道是否有一种比我所做的更有效的“折叠”NULL值的方法。有时我GROUP BY
另一个不是索引的字段,而上面显示的id
是主键。