ウィンドウ関数を使用して実行率を計算し、その結果を80と比較することをお勧めします。
この小さなコードサンプルでは、your_data
というCTEブロックに配置されたクエリの結果に基づいてそれを行う方法を示しました。 。アイデアを示しているだけです。
with
your_data (category, percentage) as(
-- sample data based on your example
select 1, 32 from dual union
select 2, 20 from dual union
select 3, 20 from dual union
select 4, 10 from dual union
select 5, 18 from dual
),
t as (
select your_data.*,
-- running sum calculation
sum(percentage) over (order by category) pctg_running
from your_data
)
select *
from t
where pctg_running <= 80
実際には3行が返され、4行が表示されると予想します。実行パーセンテージが最初に境界(80)を超える行を追加するには、実行値から現在のカテゴリパーセンテージを抽出します。つまり、sum(percentage) over (order by category)
を置き換えます。 sum(percentage) over (order by category) - percentage
。
HTH