用sql取a与b的交集_使用SQL和Tableau,搭建业务仪表板(一)

本文详细介绍了如何使用Tableau Desktop 10.5进行数据获取、数据清洗和多表关联。通过SQL查询计算订单明细表中的单品总金额,处理订单表以计算订单总金额,并进行右联接操作。同时,对客户表进行处理并与其它表关联,以汇总客户总金额。整个过程展示了Tableau在数据处理和分析中的强大功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

案例:搭建交互式仪表板,找出公司产品TOP N(变量)的大客户,进行精细化运营

案例使用的是Tableau Desktop10.5,这一部分主要介绍数据获取和数据清洗;

477bb5f2c17558bfe3780dbfc6680fe3.png

案例数据:链接: (提取码: 635y )

https://pan.baidu.com/s/1honEgzUMUcqkz5XUtjl6rQ​pan.baidu.com

一、基于SQL和多表关联进行数据连接和数据清理:

1)数据获取

打开Tableau连接数据库,这里的数据源是Access文件,连接本地Access数据库:

e23d6d40e5feb2b337ea2bc5d51b39b7.png

查看需要用到的3张表字段及类型:

6efdad1ebdb7f8dfaeefcbb3f908e20a.png

2)数据处理

1.订单明细表处理,计算单品总金额,需要表中的字段有‘订单ID/单价/数量/折扣’ :

cf4607ea7bfb5b8b93fa1cefecef3e43.png

在这里,看到“订单明细表”缺失‘金额’字段,可以通过SQL语句计算‘金额’字段:

单价

但是发现有订单ID有重复,我们需要计算出每个订单ID对应的单品总金额(需要使用group by 语句),这里使用Tableau里面自带的SQL功能:

53ed86b9512e0a7bdf2f292817db6531.png

使用select嵌套查询语句:

select 

使用预览结果查看:

64362f133dba372e31fd2d50d31f62e9.png
SQL查询命令,获取所需字段

为了便于区别表名称,这里重命名表为: 订单id-单品总金额

463e14e58bff28da4095affdfacdd1c2.png
便于区别数据表名称

2.订单表处理,计算订单总金额,需要表中的字段有‘订单ID/客户ID/雇员ID’ :

2a6bc641a31aa7ca39d0c3f97a31d784.png

在这里,看到“订单表”的字段‘客户’有重复值,且每个客户对应的雇员也是不同的,但是订单ID有重复,需要把订单作为唯一值,并计算出对应的订单金额,这里使用Tableau的SQL的查询语句

输入SQL的查询语句:

select 

使用预览结果查看:

f56539cbb3325dcf9e2aa0bd4ef93573.png

点击确定后,我们发现如图界面,这里的预览表只有字段名称,没有字段对应的值,且字段名称里都是使用SQL查询后的2个新表的所有字段,这里需要使用join联接,根据2个新表的共同字段,来把表关联起来,这里的联接和SQL的join联接是一样的,Tableau共有4种联接方式,分别是:

左联接:left join * on, 查询的结果集包括SQL语句中左表的所有行,右表中匹配的行;如果左表的某行在右表中没有匹配行,则用空值表示;如果左表数据,在右表中有多行匹配,则查询结果左表为多行显示;

右联接:right join * on,查询的结果集包括SQL语句中右表的所有行,左表中匹配的行;如果右表的某行在左表中没有匹配的行,则左表数据为空;

内联接:inner join * on, 内连接是等值连接,可以理解为交集;

外联接:full outer join * on, 取左右两表中所有的行,可以理解为并集。

这里根据共同字段‘订单ID’,使用右联接:

63e58dc348163821ea9588c191e266fb.png

得到以下视图,把重复列:订单id删除,并新命名SQL查询表:订单id-客户id-雇员id-单品总金额

11d40618fc5600ce359b19befa3c2d15.png
重复列,可选择隐藏

3.客户表处理,汇总客户总金额,需要表中的所有字段 :

cf1b8d1d33027f0c80a4d2a71330563e.png

查看客户表,发现客户表里的数据无缺失,无空白,且数据字段都是需要用到的,所以客户表里不使用SQL语句进行数据处理,这里直接将客户表拖至关系表,进行多表关联,这里根据共同字段‘客户id进行右联接:

1fc7508cb384cb06c92a70577c9257c6.png

至此,完成数据获取,数据处理和多表关联了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值