我有一个简单的查询,它可以完美地工作:

(select distinct ACTIVE_MEMBERS, BRANCH_MEMBERS from
    ( select count(*) from pink_floyd pf ) as ACTIVE_MEMBERS,
    ( select count(*) from pink_floyd pf ) as BRANCH_MEMBERS
);

根据上面的查询,我想创建视图--我是这样做的:

create or replace view v_monthly_data AS
select data.active_members, data.branch_members
from (select distinct ACTIVE_MEMBERS, BRANCH_MEMBERS from
    ( select count(*) from pink_floyd pf ) as ACTIVE_MEMBERS,
    ( select count(*) from pink_floyd pf ) as BRANCH_MEMBERS
) as data;

但这似乎是不正确的.我将不胜感激地解释我创建这个视图的正确方式. 此外,我不希望创建多个视图,然后加入它们.

推荐答案

您的简单查询不是有效的Oracle语法,因为AS不是表(或内联视图)别名之前的有效关键字.您似乎希望使用列别名而不是表别名.

正确的查询应该是:

select distinct ACTIVE_MEMBERS, BRANCH_MEMBERS
from   ( select count(*) as ACTIVE_MEMBERS from pink_floyd pf ),
       ( select count(*) as BRANCH_MEMBERS from pink_floyd pf );

可以简化为:

select count(*) AS active_mambers,
       count(*) AS branch_members
from   pink_floyd;

然后,您可以创建一个视图:

CREATE VIEW v_monthly_data (active_members, branch_members) AS
select count(*),
       count(*)
from   pink_floyd;

CREATE VIEW v_monthly_data AS
select count(*) AS active_members,
       count(*) AS branch_members
from   pink_floyd;

Sql相关问答推荐

Postgres,使用iLike运算符从json数组中搜索的工作方式与从常规表中搜索不同

我可以将INSERT语句与SELECT一起使用来创建条件吗?

SQL查询视图与连接?

将主表与历史表连接以获取主表的当前汇率以及历史表中的上一个和最后一个汇率

LEFT JOIN不显示计数0我期望的方式

在Oracle SQL中将列值转换为行

了解放置时的连接

SQL:如何查找聚合满足条件的连续日期

如何在SQL中更新Json字符串

对列进行排序后,基于两列删除重复行

如何在T-SQL中编写row_number的WHERE子句?

获取主表条目,其中最新的辅助条目是 6 个月前

如何对 jsonb 中的字段执行求和,然后使用结果过滤查询的输出

使用 SQL 计算一年中任意 3 个月期间的总成本

COBOL\DB2作业(job)需要帮助?快来获取专业指导!

Teradata 多个进程的最大进程结束时间捕获

函数调用作为插入值语句中的参数

条件前置值

在sql server中创建唯一标识符列

pyspark 将列转换为行