Postgresql left join左连接后数据变多去重记录(当左表1对多右表时)

27 篇文章 1 订阅
22 篇文章 0 订阅

Postgresql left join左连接后数据变多去重记录(当左表1对多右表时)

1. 构造表数据

drop table if exists t_cover;
create table if not exists t_cover(
    pname text NOT NULL,
    upload_date varchar(12),
    city_code varchar(20) default '',
    total_dis varchar(20),
    create_time timestamp with time zone NOT NULL DEFAULT now(),
    constraint t_cover_unique_key unique (pname,upload_date,city_code)
);
COMMENT ON TABLE t_cover IS '统计中间表';
COMMENT ON COLUMN t_cover.pname IS '名称';
COMMENT ON COLUMN t_cover.upload_date IS '日期';
COMMENT ON COLUMN t_cover.city_code IS '城市行政编码';
COMMENT ON COLUMN t_cover.total_dis IS '里程';
COMMENT ON COLUMN t_cover.create_time IS '创建时间';

create index if not exists t_cover_citycode on t_cover(city_code);
create index if not exists t_cover_pname on t_cover(pname);
create index if not exists t_cover_uploaddate on t_cover(upload_date);

INSERT INTO public.t_cover(pname, upload_date, city_code, total_dis) VALUES ('aa', '202201', '110099', 99.88);
INSERT INTO public.t_cover(pname, upload_date, city_code, total_dis) VALUES ('aa', '202201', '110000', 64.96);
INSERT INTO public.t_cover(pname, upload_date, city_code, total_dis) VALUES ('aa', '202201', '120000', 82.77);
INSERT INTO public.t_cover(pname, upload_date, city_code, total_dis) VALUES ('aa', '202202', '110108', 23.63);
INSERT INTO public.t_cover(pname, upload_date, city_code, total_dis) VALUES ('aa', '202202', '120000', 17.97);

DROP TABLE if exists t_county;
CREATE TABLE if not exists t_county
(
    province_code integer,
    province_name character varying(32),
    city_code integer,
    city_name character varying(32),
    county_code integer,
    county_name character varying(32)
);

INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110114,'昌平区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110115,'大兴区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110101,'东城区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110111,'房山区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110106,'丰台区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110108,'海淀区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110116,'怀柔区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110109,'门头沟区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110118,'密云区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110117,'平谷区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110107,'石景山区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110113,'顺义区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110112,'通州区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110102,'西城区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110119,'延庆区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (110000,'北京市',110099,'北京市',110105,'朝阳区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120115,'宝坻区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120113,'北辰区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120116,'滨海新区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120110,'东丽区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120101,'和平区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120105,'河北区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120102,'河东区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120103,'河西区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120106,'红桥区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120119,'蓟州区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120112,'津南区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120118,'静海区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120104,'南开区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120117,'宁河区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120114,'武清区');
INSERT INTO t_county(province_code, province_name, city_code, city_name, county_code, county_name) VALUES (120000,'天津市',120099,'天津市',120111,'西青区');

2. 查询验证

2.1 单独查询左表

在这里插入图片描述

2.2 left join查询:左连接,左表1对多右表 n多条数据明显有重复

在这里插入图片描述

2.3 左连接,左表1对多右表 n多条数据明显有重复 去重(根据左表唯一键)

bingo,成功~
在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序媛一枚~

您的鼓励是我创作的最大动力。

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

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

打赏作者

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

抵扣说明:

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

余额充值