使用 WITH 语句的物化视图
materialized view using WITH statement
我创建了一个物化视图,但我有一个错误,我不明白如何解决它
RA-00937: not a single-group group function
00937. 00000 - "not a single-group group function
在线
SELECT x.*,SUM(x.quantities) as Tquantities
你能帮我解决一下吗
CREATE MATERIALIZED VIEW TestView AS
With x AS(
SELECT Numclient as CLIENT,
Numcommand as COMMAND,
count(gender) as quantities
FROM customer,
Command
WHERE Numclient = Numcommand
AND gender =2
GROUP BY Numclient,
Numcommand
),
x1 AS (
SELECT x.*,SUM(x.quantities) as Tquantities
FROM x
)
SELECT x.*,ROUND(x.quantities*100/x1.Tquantities) as Percent
FROM x1, x;
从什么时候开始这在 Oracle 中有效?这不是 MySQL。
SELECT x.*,SUM(x.quantities) as Tquantities FROM x
为了使其正常工作,您必须对 x 中的列进行 GROUP BY。
为了消除错误,请删除原始子查询 x1
中的 x.*,
。
您的 select
语句可以简化,如下所示:
select Numclient CLIENT, Numcommand COMMAND, count(gender) quantities,
round(100*count(gender)/sum(count(gender)) over()) percent
from customer
join Command on Numclient = Numcommand and gender = 2
group by Numclient, Numcommand
有点不清楚为什么要显示列 COMMAND,当它等于 CLIENT 时?
我怀疑这可能是 where
条件中的错误,或者此列是多余的。
我创建了一个物化视图,但我有一个错误,我不明白如何解决它
RA-00937: not a single-group group function
00937. 00000 - "not a single-group group function
在线
SELECT x.*,SUM(x.quantities) as Tquantities
你能帮我解决一下吗
CREATE MATERIALIZED VIEW TestView AS
With x AS(
SELECT Numclient as CLIENT,
Numcommand as COMMAND,
count(gender) as quantities
FROM customer,
Command
WHERE Numclient = Numcommand
AND gender =2
GROUP BY Numclient,
Numcommand
),
x1 AS (
SELECT x.*,SUM(x.quantities) as Tquantities
FROM x
)
SELECT x.*,ROUND(x.quantities*100/x1.Tquantities) as Percent
FROM x1, x;
从什么时候开始这在 Oracle 中有效?这不是 MySQL。
SELECT x.*,SUM(x.quantities) as Tquantities FROM x
为了使其正常工作,您必须对 x 中的列进行 GROUP BY。
为了消除错误,请删除原始子查询 x1
中的 x.*,
。
您的 select
语句可以简化,如下所示:
select Numclient CLIENT, Numcommand COMMAND, count(gender) quantities,
round(100*count(gender)/sum(count(gender)) over()) percent
from customer
join Command on Numclient = Numcommand and gender = 2
group by Numclient, Numcommand
有点不清楚为什么要显示列 COMMAND,当它等于 CLIENT 时?
我怀疑这可能是 where
条件中的错误,或者此列是多余的。