SQL:统计不同字段的值域

背景

数据库

PostgreSQL

tbl_mr

hosxblyfsylfkfs
广东医院1301
广东医院1404
浙江医院0307
浙江医院0209

tbl_emr

hosxblyfsylfkfs
广东医院9999903
广东医院1408
浙江医院9507
浙江医院0214

其中 xb 字段为 numeric 类型,其他为 varchar 类型

需求

  1. 由于三个字段的编码可能有错误,想要映射成标准的编码,如果一条一条记录去更改映射不可能(数据量很大),故需要统计出每个字段的值域范围,做好映射后再批量修改到记录里;
  2. 两张表是不同源的数据,需要一个字段标识出;

目标

typefieldrange
mrxb0
mrxb1
emrlyfs2
emrlyfs3

SQL

with temp3 as (
(with temp1 as ((select distinct 'xb' field, xb::varchar range
                from tbl_mr)
               union all
               (select distinct 'lyfs' field, lyfs range
                from tbl_mr)
               union all
               (select distinct 'ylfkfs' field, ylfkfs range
                from tbl_mr))
 select 'mr' type, *
 from temp1
)
union all
(with temp2 as (
    (select distinct  'xb' field, xb::varchar range
     from tbl_emr)
    union all
    (select distinct  'lyfs' field, lyfs range
     from tbl_emr)
    union all
    (select distinct  'ylfkfs' field, ylfkfs range
     from tbl_emr)
)
select 'emr' type, *
from temp2
))
select * from temp3
group by type, field, range
order by type, field, range;

知识点

注意点

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

是小白_鸭

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值