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的過程中,增加乙...