ORACLE中的两条SQL语句问题 select (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.age>avg(a.age)),max(a.age),a.username from ht.aokage a group by a.username having max(a.age)>= (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.age>avg(a.age));select (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.username=a.username),max(a.age),a.username from ht.aokage a group by a.username having max(a.age)>= (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.age>avg(a.age)); 为啥第一条语句报错 第2条就不会啊不能理解

解决方案 »

  1.   

    仔细看了下  问题可能出现在avg函数吧?select (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.age>avg(a.age)),max(a.age),a.username from ht.aokage a group by a.username having max(a.age)>= (select avg(a2.age) from (select a1.age,a1.username from ht.aokage a1 where a1.username='joll') a2 where a2.age>avg(a.age));
      

  2.   

    where a2.age > avg(a.age)这里不能用分组方法的。
      

  3.   

    avg(a.age)
    聚合函数不能直接放到where 条件中使用
      

  4.   

    avg(a.age)
    聚合函数不能直接放到where 条件中使用