[英]Combining two Teradata SQL queries
我想將以下兩個查詢合並為一個查詢。 這是兩個查詢。 有人知道這是否可能嗎? 第二個查詢中的匯總讓我認為不,但我想將其扔給專家以查看您的想法。
查詢1:
SELECT a.id, a.ord_nb, a.scr,
a.fr,
a.rank,
CASE WHEN tp.tps_jnr_cn > 0 THEN 'Jnrs'
WHEN tp.tps_chld_cn > 0 THEN 'Chld'
WHEN tp.tps_ifnt_cn > 0 THEN 'Ifnt'
WHEN tp.tps_snr_cn > 0 THEN 'Snrs'
ELSE 'Non'
END AS Party_Seg,
CASE WHEN gx.id IS NOT NULL THEN 1 ELSE 0 END
AS rpt
FROM xi.aff a
LEFT JOIN oper.d_tps tp
ON tp.tps_id = a.ord_nb
LEFT JOIN XI.gst_exprnc gx
ON a.id = gx.id
AND tp.strt_dt > gx.strt_dts + INTERVAL '30' DAY
AND gx.exprnc_typ_id IN (309) --Park Experience
QUALIFY Row_Number() Over (
PARTITION BY ord_nb, scr, fr
ORDER BY rank DESC) = 1
ORDER BY ord_nb, fr, scr
查詢2:
SELECT a.ord_nb,
a.fr, Max(a.rank), Min(a.rank),
Max(a.rank) - Min(a.rank)
FROM (
SELECT ord_nb, fr, rank
FROM xi.aff
QUALIFY Row_Number() Over (
PARTITION BY ord_nb, fr, scr
ORDER BY rank DESC) = 1
) a
GROUP BY 1, 2
ORDER BY ord_nb, fr
考慮將兩個查詢作為派生表聯接:
SELECT t1.*, t2.Min_Rank, t2.Max_Rank, t2.Max_Min_Diff_Rank
FROM
([--INSERT 1ST QUERY REMOVING ORDER BY AT END--]) t1
INNER JOIN
([--INSERT 2ND QUERY REMOVING ORDER BY AT END AND NAMING RANK COLUMNS--]) t2
ON t1.ord_nb = t2.ord_nbAND t2.fr = t2.fr
ORDER BY t1.ord_nb, t1.fr, t1.scr
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.