0

わかりましたので、select ステートメントで MAX、MIN、AVG などの集計関数を使用する場合は知っています。集計関数を使用しない選択されたすべての列に対して GROUP BY 関数を使用する必要があります。EX

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 not a GROUP BY expression エラーが発生するためです。

ご協力いただきありがとうございます!

PS。select ステートメントは説明のみを目的としています**

4

1 に答える 1

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

ここにsqlfiddleのデモがあります

于 2013-07-08T10:17:58.193 に答える