一表 学生表
学生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后的学生成绩, 即为汇总透视聚合的度量字段,来自多表, 这就是所谓"一表出维度 多表出度量",
但这个"一表出维度 多表出度量"只是一般规则,不是必须要这样来, 硬要反过来做, 也未必就是错误的, 如果我反过来做汇总透视聚合,也是可以的,
select 成绩表.学生成绩 ,avg(学生年龄)
from 学生表 left join 成绩表
on 学生表.学生ID=成绩表.学生ID group by 学生成绩;
在上面的Sql语句中,group by后的学生成绩,即为汇总透视聚合的维度字段,来自多表
聚合函数avg后的学生年龄, 即为汇总透视聚合的度量字段,来自一表
看起来 似乎比较奇怪, 但是仔细想想 也是可以有业务意义的
暂无数据