WITH sel AS (select 'v1:P.P.PLT..' _v1ds, 'ALTMAN PLANTS' _cust, 'TFR001G0' _mold, 'D' _chan) ,sort AS ( SELECT p.agglevel ,CASE WHEN p.agglevel ? 'cust' THEN 'cust' ELSE 'market' END source ,COALESCE(gset.v1ds = (SELECT _v1ds FROM sel),false) v1ds_match ,gset.chan = _chan chan_match ,gset.* ,row_number() OVER (PARTITION BY p.agglevel ORDER BY avgunits DESC) rn ,stats.* FROM rlarp.price_pool_dev p CROSS JOIN sel JOIN LATERAL jsonb_to_record(gset) AS gset( chan text ,mold text ,v1ds text ,v0ds text ,cust text ,vers text --,nurs text --,ghse text ) ON TRUE JOIN LATERAL jsonb_to_record(stats) AS stats( avgunits numeric ,avgtargetprice numeric ,avgordcount numeric ,avgcustcount numeric ,early_season int ,early_price numeric ,recent_season int ,recent_price numeric ) ON TRUE WHERE gset @> jsonb_build_object( 'mold', (SELECT _mold FROM sel) ,'vers', 'A' ) AND ( gset @> jsonb_build_object( 'cust', (SELECT _cust FROM sel) ) OR NOT gset ? 'cust' ) AND COALESCE(stats.early_season,stats.recent_season) IS NOT NULL AND NOT p.agglevel ? 'nurs' AND NOT p.agglevel ? 'ghse' ORDER BY source ASC ,rn ASC ) --,flag AS ( --SELECT -- --agglevel -- CASE source -- WHEN 'cust' THEN -- CASE WHEN v1ds IS NOT NULL THEN -- CASE WHEN v1ds_match THEN 'customer exact' ELSE -- CASE WHEN rn = 1 THEN 'customer v1ds vol' ELSE 'customer v1ds other' END -- END -- ELSE -- CASE WHEN rn = 1 THEN 'customer v0ds vol' ELSE 'customer v0ds other' END -- END -- ELSE -- CASE WHEN v1ds IS NOT NULL THEN -- CASE WHEN v1ds_match THEN 'market exact' ELSE -- CASE WHEN rn = 1 THEN 'market v1ds vol' ELSE 'market v1ds other' END -- END -- ELSE -- CASE WHEN rn = 1 THEN 'market v0ds vol' ELSE 'market v0ds other' END -- END -- END relevance -- ,source -- ,v1ds_match -- ,chan_match -- ,chan -- ,mold -- ,v1ds -- ,v0ds -- ,cust -- ,vers -- ,rn -- ,avgunits -- ,avgordcount -- ,avgcustcount -- ,avgtargetprice -- ,early_season -- ,early_price -- ,recent_season -- ,recent_price --FROM -- sort --) --,rel AS ( -- SELECT * FROM (values -- ('customer exact' ,1) -- ,('customer v0ds other',7) -- ,('customer v0ds vol' ,3) -- ,('customer v1ds other',6) -- ,('customer v1ds vol' ,2) -- ,('market exact' ,4) -- ,('market v0ds other' ,9) -- ,('market v0ds vol' ,5) -- ,('market v1ds other' ,8) -- ) x (flag,prefer) --) --,rel_sort AS ( -- SELECT -- -- flag.relevance -- --,flag.source -- --,rel.prefer -- --,row_number() OVER (PARTITION BY flag.source ORDER BY rel.prefer ASC) best -- jsonb_strip_nulls( -- jsonb_build_object( -- relevance -- ,jsonb_build_object( -- 'avgunits' ,avgunits -- ,'avgordcount' ,avgordcount -- ,'avgcustcount' ,avgcustcount -- ,'avgtargetprice' ,avgtargetprice -- ,'early_season' ,early_season -- ,'early_price' ,early_price -- ,'recent_season' ,recent_season -- ,'recent_price' ,recent_price -- ,'ds' ,COALESCE(v1ds,v0ds) -- ,'rank' -- ,row_number() OVER (PARTITION BY flag.source ORDER BY rel.prefer ASC) -- ) -- ) -- ) doc -- FROM -- flag -- LEFT OUTER JOIN rel ON -- rel.flag = flag.relevance -- WHERE -- relevance ~ 'vol|exact' --) ----SELECT jsonb_pretty(jsonb_agg(doc)) FROM rel_sort ----SELECT jsonb_pretty(jsonb_obj_aggc(doc)) FROM rel_sort SELECT * FROM sort