SQL:一行中存在任一指标就显示出来

发布时间:2024年01月13日

???????当想要统计的两个指标不在一张表中时,需要做关联。但很多情况下,也没有办法保证其中一张表的维度是全的,用left join或right join可能会导致数据丢失。所以借助full join处理。

如,将下面的数据处理成表格中的效果(维度就是name)。
样例数据
目标效果:

namenumbershow_number
A3000.80
B100NULL
C1500.20
DNULL0.66
select if(r.name is null ,r.name2,r.name) as name, -- 保留有值的name
       r.number,
       r.show_number
from 
(   -- 数据合并
    select t1.name,t1.number,t2.name as name2,t2.show_number
     from 
        (select 'A' as name,300 as number
            union all select 'B' ,100
            union all select 'C' ,150 
        ) as t1
        full join 
        (select 'A' as name,0.8 as show_number
            union all select 'D',0.66
            union all select 'C',0.2
        ) as t2 on t1.name=t2.name
) as r

结果 :
结果

文章来源:https://blog.csdn.net/qq_40178216/article/details/135569049
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。