2017-10-10 20 views

回答

0

f_name不是羣組中的聚合。嘗試例如min(f_name)。

不確定是否「有平均年齡>年齡;將按預期工作。

0

您在select中有f_name,但按部門彙總。

您擁有的子句混合了聚合和非聚合。

想必,你想是這樣的:

select s.* 
from (select s.*, avg(s.age) over (partition by s.dept_id) as avg_age 
     from students s 
    ) s 
where s.age > avg_age; 
1

只能GROUP BY列,如果它被包含在SELECT聲明。另外,如果您使用的是GROUP BY子句,則需要在GROUP BY中包含所有非聚合函數列。

嘗試:

select f_name, avg(age), dept_id 
from students 
group by f_name, dept_id 
--not sure about this next line either 
--having avg(age) > age; 
相關問題