不是Group By Expression,具有自己声明的函数



好的,这样我就知道在select语句中何时使用聚合函数,如MAX、MIN、AVG和so fort。您需要对所有未使用聚合函数的选定列使用GROUP BY函数。前

SELECT name, MAX(age)
FROM person
GROUP BY name

但我的问题是,当我对某些列使用自己的函数,并且在select语句中使用Aggregate函数时。前

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语句仅用于解释目的**

您可以拥有整个函数,也可以拥有作为参数的列。

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);

这是一个sqlfiddle演示

最新更新