繁体   English   中英

Oracle SQL:根据多个行条件拆分组

[英]Oracle SQL: Splitting a group by based on multiple rows criteria

我有一个地址可以有多个旅程的数据,如下所示:

在此处输入图片说明

我想按每次旅程划分地址(“旅程的开始”到“旅程的结束”,中间的所有“旅程的一部分”构成一个旅程)并汇总费用,因此每个地址可以根据旅行次数,如下所示:

在此处输入图片说明

我似乎无法弄清楚解决此问题所需的逻辑。 任何帮助或指针将不胜感激。

使用一个连续的总和将行标记为组,每当给定地址遇到Start of Journey起点行时,就开始一个新的数字。 然后使用它进行分组并获得总成本。

select address,sum(cost) 
from (select t.*
      --Replace OrderCol with a column that specifies row order
      ,sum(case when journey='Start of Journey' then 1 else 0 end) over(partition by address order by OrderCol) as grp 
      from tbl
     ) t
group by address,grp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM