))大家好,这是我的桌子......
我想创建一个触发器功能,无论什么时候总计'在时间类型列上插入它会使所有时间从表格中删除从表格中取出fnname =' ff' AND timetype =' Lap'但只有在timeindex具有最高十进制值的情况下(例如,在mytable = 1.1,2.3,3.3中)(让我们说最大可能的十进制值为1.9或2.9或3.9和son on)。因此,在上面的表格中,触发器功能会自动汇总所有蓝色突出显示的squeares并将其放在最后一个timeelpase行中(其中timetype =' Total')。我怎么能这样做?
谢谢高级。
答案 0 :(得分:0)
按时间索引的整数部分对数据进行分组:
select distinct on (floor(timeindex)::int)
floor(timeindex)::int idx, timeindex, timeelapse
from mytable
where fnname = 'ff'
and timetype = 'Lap'
order by 1, 2 desc;
idx | timeindex | timeelapse
-----+-----------+------------
1 | 1.1 | 01:00:00
2 | 2.3 | 03:00:00
3 | 3.3 | 08:00:00
(3 rows)
在触发器中计算上述查询的总和:
select sum(timeelapse) from (
select distinct on (floor(timeindex)::int)
floor(timeindex)::int idx, timeindex, timeelapse
from mytable
where fnname = 'ff'
and timetype = 'Lap'
order by 1, 2 desc
) alias;
sum
----------
12:00:00
(1 row)