在单独的 SELECT 语句中使用视图的列别名

Use a view's column alias in a seperate SELECT statement

我创建了一个视图,其中有一列带有别名,现在我想通过单独的 SELECT 语句在此列上使用 MAX() 函数,但我不知道如何操作。 (对于我在 MAX() 函数中编写的内容,我不断收到 "invalid identifier" 错误。)

CREATE OR REPLACE VIEW C17_AbfrageBView AS
SELECT p.PersonID, p.Vorname, p.Nachname,
       COUNT(DISTINCT f.FachID) "Fachanzahl" -- this column
FROM  ...
GROUP BY p.PersonID, p.Vorname, p.Nachname
ORDER BY 4;


SELECT PersonID, Vorname, Nachname,
       MAX(Fachanzahl) "Fachanzahl" -- right here
FROM C17_AbfrageBView
GROUP BY PersonID, Vorname, Nachname;

我也试过:

SELECT ..., MAX(COUNT(DISTINCT FachID)) "Fachanzahl"
FROM C17_AbfrageBView
...

感谢您的帮助!

视图 C17_AbfrageBView 有一个名为 "Fachanzahl" 的列(区分大小写,需要双引号),因此在查询视图时必须引用它。

您可以描述视图(describe c17_abfragebview 在 SQL*Plus 中,或者右键单击 IDE 中的名称)以确认可用列的列表。

区分大小写的名称虽然不方便,所以我强烈建议将列命名为 Fachanzahl 而不是 "Fachanzahl"

你只需要如下使用

SELECT PersonID, Vorname, Nachname,
       MAX([Fachanzahl]) "Fachanzahl" -- right here
FROM C17_AbfrageBView
GROUP BY PersonID, Vorname, Nachname;

使用[]

问候。