将Java sql查询从UNION更新为JOIN

我有以下查询, 表格PCA和PC具有相似的结构(相同的列)。

select session,wc,sum(duration) / (sum(delta) + sum(duration)) as wc_efficiency from
(
SELECT     
a.session,a.panel,a.line_location as WC,a.line_duration as duration,a.line_lead_duration - b.line_lead_duration as delta

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.line_location is not null

union

SELECT 

a.session,a.completion_location as WC2,a.completion_duration as duration2,a.completion_lead_duration  - b.completion_lead_duration as delta2

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.completion_location is not null

)
group by session,wc

现在,我想为duration2和delta2分开找到wc2和wc_efficiency2作为单独的列。为此,我将查询更新如下:

select session,wc1,sum(duration1) / (sum(delta1) + sum(duration1)) as wc_efficiency1,wc2,sum(duration2) / (sum(delta2) + sum(duration2)) as wc_efficiency2 from
(
SELECT 
a.session as ss,a.panel as pl,a.line_location as WC1,a.line_duration as duration1,a.line_lead_duration - b.line_lead_duration as delta1

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.line_location is not null
) t1

join

(
SELECT 
a.session as ss,a.completion_lead_duration  - b.completion_lead_duration as delta2

FROM PCA a 
join PC b
on a.batch = b.batch and a.session = b.session and a.panel = b.panel
where a.completion_location is not null
) t2
ON t1.ss = t2.ss and t1.pl = t2.pl
group by wc1,wc2

查询未运行,我找不到错误。

sydth 回答:将Java sql查询从UNION更新为JOIN

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3144471.html

大家都在问