Вы могли бы предоставить некоторые образцы данных.
Делаете это сейчас:
WITH
-- sample data , this will be in the table
input(id,steak_sold) AS (
SELECT 1,30.07
UNION ALL SELECT 2,30.01
UNION ALL SELECT 3,30.02
UNION ALL SELECT 4,30.03
UNION ALL SELECT 5,30.04
UNION ALL SELECT 6,30.05
UNION ALL SELECT 7,30.06
UNION ALL SELECT 8,30.07
UNION ALL SELECT 9,30.08
UNION ALL SELECT 10,30.09
UNION ALL SELECT 11,30.10
UNION ALL SELECT 12,30.11
UNION ALL SELECT 13,30.12
UNION ALL SELECT 14,30.13
UNION ALL SELECT 15,30.14
UNION ALL SELECT 16,30.15
UNION ALL SELECT 17,30.16
)
-- real WITH clause would begin here: creating running sum myself ....
,
runsum AS (
SELECT
*
, SUM(steak_sold) OVER(ORDER BY id) AS c_steak
FROM input
)
SELECT
*
FROM runsum
-- this running sum is above a certain 100
-- previous (running sum - steak_sold) below that 100
-- integer division by 100 of the two differs
WHERE c_steak//100 <> (c_steak - steak_sold) //100;
-- out id | steak_sold | c_steak
-- out ----+------------+---------
-- out 4 | 30.03 | 120.13
-- out 7 | 30.06 | 210.28
-- out 10 | 30.09 | 300.52
-- out 14 | 30.13 | 420.98
-- out 17 | 30.16 | 511.43
-- out (5 rows)
-- out
-- out Time: First fetch (5 rows): 53.018 ms. All rows formatted: 53.066 ms