我有两套:
集合1(样本数据):
actionid | actiontime
---------+---------------------
123 | 2018-10-02 00:01:00
456 | 2018-10-02 00:10:00
actionid | actionsteps | actionsteptime | outputnumber
---------+-------------+---------------------+---------------
123 | step a | 2018-10-02 00:02:00 | 1
123 | step b | 2018-10-02 00:03:00 | NULL
123 | step a | 2018-10-02 00:04:00 | 2
123 | step c | 2018-10-02 00:05:00 | NULL
123 | step a | 2018-10-02 00:06:00 | 1
456 | step a | 2018-10-02 00:11:00 | 4
456 | step a | 2018-10-02 00:12:00 | 5
456 | step b | 2018-10-02 00:13:00 | NULL
456 | step a | 2018-10-02 00:12:00 | 7
集合2中actionsteps的可能值为“步骤a”或“步骤b”或“步骤c”。
我需要计算每个actionid的outputnumber并求和和和计数,但条件仅适用于actionsteptime小于“step b”的第一个actionsteptime的“step a”的值(这意味着如果actionid的集合2中有任何“step b”,则在计算和时忽略该值和之后的任何actionsteps&计数)。如果actionid没有“步骤b”,则表示它是一个正常的和&数一数。带有“步骤c”的行不影响总和;计数计算。
所以这个例子中的预期输出是
actionid | count| sum
---------+---------------------
123 | 1 | 1
456 | 2 | 9