专家
我有下面两个(实际上不止两个)查询,我需要在一次执行中运行它们,并获得它们的结果以避免执行成本。
查询1
SELECT 0,
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PTP') as 'PTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'BPTP') as 'BPTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PENDING') as 'Pending',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'NC') as 'NC',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'ANF') as 'ANF',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'SFD') as 'SFD',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'CB') as 'CB',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'LM') as 'LM',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 0
AND l.allocationDPD <= 30) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'DL') as 'DL'
其输出为以下格式的
0,ptp,bptp,fptp,挂起,nc,anf,sfd,cb,lm,dl
查询2:
SELECT 31,
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PTP') as 'PTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'BPTP') as 'BPTP',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'PENDING') as 'Pending',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'NC') as 'NC',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'ANF') as 'ANF',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'SFD') as 'SFD',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'CB') as 'CB',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'LM') as 'LM',
(SELECT count(1)/(SELECT count(1) from LOANEE l WHERE l.allocationDPD >= 31
AND l.allocationDPD <= 60) * 100 FROM LOAN_TRANSACTION lt where lt.dispositionCode = 'DL') as 'DL'
其输出为以下格式的
31,ptp,bptp,fptp,挂起,nc,anf,sfd,cb,lm,dl
我想做的是将这些查询组合起来,并返回类似以下的数据
其输出为以下格式的
bucket、ptp、bptp、fptp、挂起、nc、anf、sfd、cb、lm、dl
0,1,2,3,4,5,6,7,8,9,10,11
31,1,2,3,4,5,6,7,8,9,10,11
61,1,2,3,4,5,6,7,8,9,10,11
我试图将它们包装到另一个Select查询中,但它一直给我一个语法错误
有什么建议吗?
联合就是答案。。愚蠢的我