duplicate dss dsq key sets built into json

This commit is contained in:
Paul Trowbridge 2025-08-07 02:08:07 -04:00
parent 213d1419fb
commit 47d77d3706

View File

@ -166,14 +166,26 @@ WITH exploded_flags AS (
) )
--SELECT * FROM flag_json --SELECT * FROM flag_json
-- Step 3.4: Nest dss/dsq under each dataseg -- Step 3.4: Nest dss/dsq under each dataseg
-- Only keep the most recent dss/dsq per dataseg/version (prevents duplicate keys)
,seg_pieces AS ( ,seg_pieces AS (
SELECT SELECT
customer, customer,
partgroup, partgroup,
dataseg, dataseg,
STRING_AGG(json_piece, ',') AS inner_json STRING_AGG(json_piece, ',') AS inner_json
FROM serialized_flags FROM (
WHERE flag IN ('dss', 'dsq') SELECT sf.*
FROM (
SELECT *,
ROW_NUMBER() OVER (
PARTITION BY customer, partgroup, dataseg, flag
ORDER BY odate DESC, version DESC -- prefer most recent, then prefer 'Actual' over 'Quotes'
) AS rn
FROM serialized_flags
WHERE flag IN ('dss', 'dsq')
) sf
WHERE sf.rn = 1
) deduped
GROUP BY customer, partgroup, dataseg GROUP BY customer, partgroup, dataseg
) )
--SELECT * FROM seg_pieces --SELECT * FROM seg_pieces
@ -202,7 +214,7 @@ WITH exploded_flags AS (
-- Write final pricing history to pricing.lastpricedetail -- Write final pricing history to pricing.lastpricedetail
-------------------------------------------------------------------------------- --------------------------------------------------------------------------------
INSERT INTO INSERT INTO
pricing.lastpricedetail pricing.lastpricedetail
SELECT SELECT
COALESCE(f.customer, s.customer) AS customer, COALESCE(f.customer, s.customer) AS customer,
COALESCE(f.partgroup, s.partgroup) AS partgroup, COALESCE(f.partgroup, s.partgroup) AS partgroup,