我必须优化select查询才能获得更少的no。我们拥有相同的数据但日期不同的记录。我需要按日期对所有行进行排序,并将所有行合并为一个行,直到找到不同的列值。通常数据如下。在sql中有多个集合的组记录
date c_val
1/1/2016 200
2/1/2016 200
3/1/2016 300
4/1/2016 300
5/1/2016 300
6/1/2016 200
7/1/2016 200
然后我的输出应该如下。
start_date end_date c_val
1/1/2016 2/1/2016 200
3/1/2016 5/1/2016 300
6/1/2016 7/1/2016 200
,我跟着现在查询是这样的:
select min(date) as start_date, max(date) as end_date, c_val
from t_ord
group by c_val;
但是,这实际上是只返回两个记录,因为它与c_val分组。我想我需要额外的订购,并找到新的价值时打破。 在postgres中有没有可用的功能?
这是一个很酷的解决方案! –