fix(usage): repair aggregate usage statistics

This commit is contained in:
fawney19
2026-05-06 01:13:23 +08:00
parent f1358dd845
commit 3264857e4a
10 changed files with 736 additions and 121 deletions

View File

@@ -916,8 +916,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -982,8 +982,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -1058,8 +1058,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -1135,8 +1135,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -2611,8 +2611,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -2693,8 +2693,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -2779,8 +2779,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0
@@ -2866,8 +2866,8 @@ WITH aggregated AS (
COALESCE(
SUM(
COALESCE(
CAST(usage_settlement_snapshots.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage.output_price_per_1m AS DOUBLE PRECISION),
CAST(usage_settlement_snapshots.input_price_per_1m AS DOUBLE PRECISION),
CAST(usage.input_price_per_1m AS DOUBLE PRECISION),
0
) * GREATEST(COALESCE(usage.cache_read_input_tokens, 0), 0)::DOUBLE PRECISION
/ 1000000.0