Sql 这里不神秘。在此上下文中,count()用作聚合函数,不允许将聚合函数与选择列表中的单个列或表达式混合使用,除非将该单个列或表达式作为参数传递给另一个聚合函数,或将其包含在group by子句中。它确实返回单个组。但是,您使用的是ANSI之前的样式,在没有
Sql 这里不神秘。在此上下文中,count()用作聚合函数,不允许将聚合函数与选择列表中的单个列或表达式混合使用,除非将该单个列或表达式作为参数传递给另一个聚合函数,或将其包含在group by子句中。它确实返回单个组。但是,您使用的是ANSI之前的样式,在没有,sql,oracle,count,aggregate-functions,Sql,Oracle,Count,Aggregate Functions,这里不神秘。在此上下文中,count()用作聚合函数,不允许将聚合函数与选择列表中的单个列或表达式混合使用,除非将该单个列或表达式作为参数传递给另一个聚合函数,或将其包含在group by子句中。它确实返回单个组。但是,您使用的是ANSI之前的样式,在没有其他条件的情况下连接(因此,使用交叉连接),因此该值连接到test1的每一行。 CREATE TABLE test1 ( num NUMBER ); INSERT INTO test1 VALUES (1); INSERT INTO tes
这里不神秘。在此上下文中,
count()
用作聚合函数,不允许将聚合函数与选择列表中的单个列或表达式混合使用,除非将该单个列或表达式作为参数传递给另一个聚合函数,或将其包含在group by
子句中。它确实返回单个组。但是,您使用的是ANSI之前的样式,
在没有其他条件的情况下连接(因此,使用交叉连接
),因此该值连接到test1
的每一行。
CREATE TABLE test1 (
num NUMBER
);
INSERT INTO test1 VALUES (1);
INSERT INTO test1 VALUES (1);
INSERT INTO test1 VALUES (1);
INSERT INTO test1 VALUES (1);
INSERT INTO test1 VALUES (1);
SELECT COUNT(*) FROM test1;
CREATE TABLE test2 (
num NUMBER
);
INSERT INTO test2 VALUES (1);
INSERT INTO test2 VALUES (1);
INSERT INTO test2 VALUES (1);
INSERT INTO test2 VALUES (1);
INSERT INTO test2 VALUES (1);
SELECT COUNT(*) FROM test2;
SELECT count(*)/"c2" FROM test1, (SELECT count(*) "c2" FROM test2);
DROP TABLE test1;
DROP TABLE test2;
SELECT count(*)/MAX("c2")
SELECT count(*)/MIN("c2")
SELECT (SELECT count(*) FROM test1)
/ (SELECT count(*) FROM test2)
FROM dual ;
SELECT "c1" / "c2"
FROM (SELECT count(*) "c1" FROM test1)
, (SELECT count(*) "c2" FROM test2) ;
SELECT "c1" / "c2"
FROM (SELECT count(*) "c1" FROM test1) x1
CROSS JOIN
(SELECT count(*) "c2" FROM test2) x2 ;
SELECT count(*)/c2
FROM test1 cross join
(SELECT count(*) as c2
FROM test2
);