我的表和查询如下:为什么count(*)不返回单个组?
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;
为什么查询1和2的返回一个值(5),但师(查询3)返回一个ORA-00937错误?
如果我理解正确count(*)是一个聚合函数,并应返回一个单一的值。
尝试'SELECT count(*)/ MAX(“c2”)' –
它的工作原理,但这并不能解决神秘的问题:) – Gust
这里没有神秘之处。在这种情况下,'count()'用作聚合函数,除非将单个列或表达式作为参数传递给另一个聚合函数,否则不允许在选择列表中混合聚合函数和单个列或表达式,或者将它包含在'group by'子句中。 –