数据块聚合

2020-09-12 04:51发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 嗨, 我想实现一个...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我想实现一个解决方案,其中我有一个如下所示的数据集-

我想基于lat-long聚合数据,如果一行中发送了相同的lat-long,则这些行应进行聚合并返回到单行中。 以下是我期望的输出-

但是,这里的问题是,如果在以后的某个时间点再次发送了经纬度组合,则不应对其进行汇总。 为此,它应该有一个新行(例如s_no 1和5的行具有相同的经纬度,但不进行汇总。

我使用循环实现了该解决方案,但是由于数据集很大,因此性能很差。

有人可以为此建议一个更好的解决方案(不包括循环/光标)吗?

下面是创建表和插入数据的sql查询-

创建表dev_tab(id nvarchar(10),lat十进制(12,9),long十进制(12,9),时间戳记timestamp);

插入dev_tab(id,lat,long,timestamp)值('g1',48.762438,9.186757,'2018-09-11 07:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',48.762438,9.186757,'2018-09-11 10:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',46.943718,8.999521,'2018-09-11 14:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',44.291991,0.938082,'2018-09-12 05:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',44.291991,0.938082,'2018-09-12 07:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',12.885067,77.553435,'2018-09-12 08:00:00');

插入dev_tab(id,lat,long,timestamp)值('g1',48.762438,9.186757,'2018-09-13 10:00:00');


谢谢。

致谢,
普拉奇

(11.4 kB)
4条回答
2020-09-12 05:08

Hi Lars,

非常感谢您为我提供帮助。 如您所知,对于END_TIMESTAMP,我想查看下一组的START_TIMESTAMP。 我按照您的建议在下面使用了WINDOW函数-

引导(s.timestamp)结束(按s.seq划分s.id顺序)end_timestamp

有了END_TIMESTAMP的此功能,我认为我根本不需要"端点"查询。 如果我错了,请纠正我。


致谢,
普拉奇

一周热门 更多>

相关问答