groupby用法詳解

2022-09-20 10:45:09 字數 1895 閱讀 2553

group_by的意思是根據by對資料按照哪個字段進行分組,或者是哪幾個字段進行分組。

select 字段 from 表名 where 條件 group by 字段

或者select 字段 from 表名 group by 字段 h**ing程式設計客棧 過濾條件

注意:對於過程式設計客棧濾條件,可以先用where,再用group by或者是先用group by,再用h**ing

說明:在plsql developer上建立**並插入資料,以便下面進行簡單字段分組以及多個字段分組,同時還結合聚合函式進行運算。

建立student表

create table student

(id int not null ,

name varchar2(30),

grade varchar2(30),

salary varchar2(30)

在student表中插入資料

insert into student values(1,'zhangsan','a',1500);

insert into student values(2,'lisi','b',3000);

insert into student values(1,'zhangsan','a',1500);

insert into student values(4,'qianwu','a',3500);

insert into student values(3,'zhaoliu','c',2000);

insert into student values(1,'huyifei','d',2500);

資料插入到student表中的結果

① select grade from student 查出所有學生等級(包括重複的等級)

② select grade from student group by grade 查出學生等級的種類(按照等級劃分,去除重複的)

select name , sum(salary) from student group by name , grade 按照名字和等級劃分,檢視相同名字下的工資總和

注意:這裡有一點需要說明一下,多個字段進行分組時,需要將name和grade看成乙個整體,只要是n程式設計客棧ame和grade相同的可以分成一組;如果只是name相同,grade不同就不是一組。

常用的聚合函式:count() , sum() , **g() , max() , min()

count():計數

select name , count(*) from student group by name 檢視表中相同人名的個數

得出的如下結果

sum():求和

select name , sum(salary) from student group by name 檢視表中人員的工資和(同姓的工資相加)

得出的如下結果

**g():平均數

select name , **g(salary) from student group by name , grade 檢視表中人員的工資平均數(同姓工資平均數)

得出的如下結果

max():最大值

select grade , max(salary) from student group by grade 檢視按等級劃分人員工資最大值

得出的如下結果

min():最小值

select grade , min(salary) from student group by grade 檢視按等級劃分人員工資最小值

得出的如下結果

本文標題: groupby用法詳解

本文位址: /shujuku/oracle/445608.html

SQL語句之GROUP BY用法詳解

大家都知道groupby在sql語句中代表按照某個字段分組,但原理和用法在網上不容易查得到。下面我用一句話簡介的來說明 如果select 中出現了非聚合函式的字段,那麼所有欄位都要在group by後面出現,然而group by後面的分組字段可以不用在select中出現。原因 因為每一次的selec...

sql語句裡Group By用法詳解 例項

我們現在回到函式上。記得我們用 sum 這個指令來算出所有的 sales 營業額 吧!如果我們的需求變成是要算出每一間店 store name 的營業額 sales 那怎麼辦呢?在這個情況下,我們要做到兩件事 第一,我們對於 store name 及 sales 這兩個欄位都要選出。第二,我們需要確...

Group by分組詳解

先來看一下表1,表名為test 表1執行如下sql語句 select name from test group by name 你應該很容易知道執行的結果,沒錯,就是下表2 表2可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加乙...