好的,所以我知道在select语句中使用MAX,MIN,AVG等集合函数时。您需要对不使用聚合函数的所有选定列使用GROUP BY函数.EX
SELECT name, MAX(age)
FROM person
GROUP BY name
但我的问题是,当我对某些列使用自己的函数时,我在select语句中使用了Aggregate函数。 EX
SELECT f_fullname(name, surname) as fullname, max(age)
FROM person
我应该将整个函数作为group by子句的一部分添加吗?
GROUP BY f_fullname(name, surname)
因为此时我得到ORA-00979而不是GROUP BY表达式错误。
感谢您的帮助!
PS。 select语句仅用于解释目的**
答案 0 :(得分:1)
您可以拥有整个功能,也可以使用作为参数的列。
select f_fullname(name , surname) full_name, max (age)
from person
group by name, surname;
或
select f_fullname(name , surname) full_name, max (age)
from person
group by f_fullname(name , surname);