count 不是單組分組函式

2021-09-01 18:53:40 字數 460 閱讀 7337

select count(),欄位1,欄位2....涉及多個欄位的時候要使用group by 分組,而且group by 後面的就是count()除外的欄位名。

例項:select deptno,count(empno) from emp;

報錯:不是單組分組函式

原因:

1, 如果程式中使用了分組函式,則有兩種情況可以使用:

程式中存在group by,並指定了分組條件,這樣可以將分組條件一起查詢出來

改為:select deptno,count(empno) from emp group by deptno;

如果不使用分組的活,則只能單獨使用分組函式

改為:select count(empno) from emp;

2, 在使用分組函式的時候,不能出現分組條件之外的字段

總結,count()之外的字段要寫在group by 後面。

count 列名 與count 說明

1 count 會統計值為null的行,而count 列名 不會統計此列為null值的行 2 不要使用count 列名 或者count 常量 來代替count count 就是sql92定義的標準統計行數的語法,跟資料庫無關,跟null和非null無關 3 count 列 對應的列欄位如果建了索引,...

count 1 和count 哪個高效?

當表的資料量大些時,對錶作分析之後,使用count 1 還要比使用count 用時多了!從執行計畫來看,count 1 和count 的效果是一樣的。但是在表做過分析之後,count 1 會比count 的用時少些 1w以內資料量 不過差不了多少。如果count 1 是聚索引,id,那肯定是coun...

count 和count 1 的區別

create table test1 id number,name varchar2 50 create time date 插入1000000條資料。begin for i in 1 10000000 loop insert into test1 values i,dba fashion測試 i,...