热线电话:13121318867

登录
2023-11-16 阅读量: 4767
CDA学习,关于"一表出维度,多表出度量"的思考

一表 学生表

学生ID 学生姓名 学生年龄

S01 张三 20

S02 李四 22

S03 王五 25


多表 成绩表

学生ID 学生科目 学生成绩

S01 C01 60

S01 C02 70

S01 C03 80

S02 C01 50

S02 C02 60

S02 C03 70


select 学生表.学生年龄 ,avg(学生成绩)

from 学生表 left join 成绩表

on 学生表.学生ID=成绩表.学生ID group by 学生年龄;


一表出维度 多表出度量

在上面的Sql语句中,group by后的学生年龄,即为汇总透视聚合的维度字段,来自一表

聚合函数avg后的学生成绩, 即为汇总透视聚合的度量字段,来自多表, 这就是所谓"一表出维度 多表出度量",



image.png



但这个"一表出维度 多表出度量"只是一般规则,不是必须要这样来, 硬要反过来做, 也未必就是错误的, 如果我反过来做汇总透视聚合,也是可以的,


select 成绩表.学生成绩 ,avg(学生年龄)

from 学生表 left join 成绩表

on 学生表.学生ID=成绩表.学生ID group by 学生成绩;


在上面的Sql语句中,group by后的学生成绩,即为汇总透视聚合的维度字段,来自多表

聚合函数avg后的学生年龄, 即为汇总透视聚合的度量字段,来自一表



image.png

看起来 似乎比较奇怪, 但是仔细想想 也是可以有业务意义的



0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子