我的表和查詢如下:爲什麼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'子句中。 –