日期:2014-05-18  浏览次数:20465 次

连接查询+数据统计计算,如何做呢?
现在有2个表,a 表和b表,

我做了一次left join 获得了一个集合


select c.username,avg(c.diff) from 
(
select b.username ,b.department ,datediff(hour,a.timestr,a.latetime) as diff
from worktodo a 
left join users b
on a.userid=b.truename
) c
group by c.username


出来的数据想再按照用户名进行一下统计,我想在这个基础上再按照username的名字求一下时间差的平均值

现在我有点小迷糊的地方,为啥 中间的select如果不加入别名的话会报错?

像这样的复杂查询,应当怎么去学习分解呢?















------解决方案--------------------

 先执行子查询中间的部分 后进行统计 因为这个中间结果 会缓存在一个临时表中 这个表的名字 你未知 所以应用要定义下它的别名 好对应去找到他进行统计 
SQL code

select b.username ,b.department ,datediff(hour,a.timestr,a.latetime) as diff
from worktodo a  
left join users b
on a.userid=b.truename

------解决方案--------------------
这种临时表 不加别名的话 就像你找一个东西 必须知道 你要找的是什么才行