OracleのGROUP BY句を使用して他の列情報を表示する方法は?
Oracleでのグループ化には、GROUP BY句が使用され、結果セットが指定された列でグループ化されます。ただし、デフォルト設定ではグループ化された列と集計関数の結果しか表示されません。
他列の情報を表示したい場合は、集約関数とGROUP BY句の組み合わせを使用して実現できます。
例えば、”employees”という表があり、そこには従業員の名前、部署、給与情報が含まれています。部署ごとにグループ化し、各部署の平均給与と部署内で最高給与の従業員の名前と給与を表示したいとします。
SELECT department, AVG(salary), MAX(name), MAX(salary)
FROM employees
GROUP BY department;
上記の例では、各部門の平均給与を計算するためにAVG関数を使用し、最高給与の従業員の名前と給与情報を取得するためにMAX関数を使用しました。ここでのMAX関数は文字列型の列に使用されます。これは、従業員の名前情報を表示したいためです。
この方法を使用すると、グループ化されたクエリで他の列の情報を表示できます。クエリ文の列やテーブル名を実際のニーズに合わせて調整してください。