這是多張表查詢的結果,現在想根據sumdyp值將qu欄位去重,并且其它幾列都要顯示。
select tt.*,
(select t4.addvnm
from st_addvcd_d_loc t4
where tt.addvcd = t4.addvcd
group by t4.addvnm) qu
from (select t.addvcd, t.stnm, sum(t.dyp) sumdyp
from (select t1.stcd, t1.dyp, t2.stnm, t2.addvcd, t3.addvnm
from st_pptn_r_loc t1,
st_stbprp_b_loc t2,
st_addvcd_d_loc t3
where dyp is not null
and t1.stcd = t2.stcd
and t2.addvcd = t3.addvcd) t
group by t.addvcd, t.stnm
order by sumdyp desc) tt
uj5u.com熱心網友回復:
比如1 2行其他的列怎么顯示?uj5u.com熱心網友回復:
結果要什么樣的呢?uj5u.com熱心網友回復:
qu列不能有重復的,在去重的程序中以sumdyp為準,只留最大值所對應的qu資訊。例如,涪陵區有2行,所對應的sumdyp資訊是5.5和3.5,只留5.5這行資訊(其它所對應的列都要顯示)。uj5u.com熱心網友回復:
select addvcd, stnm, sumdyp, qu
from (select addvcd,
stnm,
sumdyp,
qu,
row_number() over(partition by qu order by sumdyp desc ) rn
from 表名)
where rn = 1
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/69682.html
標籤:開發
上一篇:多條記錄變一條,欄位按位或
