SQL指令碼去重分組統計

2022-03-12 22:18:09 字數 1054 閱讀 5431

需求:首先有一張表記錄學生姓名、科目和成績,然後模擬插入幾條資料,指令碼如下:

create

table

score

( name

nvarchar(20),--

姓名 subject varchar(20),--

科目 grade int

--成績

);insert

into score(name,subject,grade) values('

張三','

語文',100

);insert

into score(name,subject,grade) values('

張三','

數學',90

);insert

into score(name,subject,grade) values('

李四','

語文',85

);insert

into score(name,subject,grade) values('

王五','

語文',99

);insert

into score(name,subject,grade) values('

王五','

英語',89);

那麼我們需要寫入的sql指令碼如下:

select name 姓名, count(distinct subject) 科目, sum

(grade) 總分

from

score

group

by name

然後就能得到上面結果了,重點是:count(distinct subject) 科目,再一次顯示一下結果檢視:

SQL分組統計

全國各省份人口數排前三的城市 思路 先按照省份分組,再組內按照人口數排序取前三 mysql set num 0 class select from select p.num if class province,num 1 1 as rank,class p.province as pclass fr...

SQL分組統計

第一種情況 橫向顯示 先看下面的乙個資料表 現在的需求是 統計出v coun每一種取值情況下,對就的v iseneded的數量。oracle中的 sql 如下 select v count,sum case when v isended 1then 1else 0end as 一的數量,sum ca...

排序,去重,分組,作業

all 所有的意思 in 代表在某些引數範圍之內的都符合條件 in 括號裡面寫引數,相當於多個or select from 檔名 where 表名 in not 起到修飾的作用,取反,寫在in前面 select from 檔名 where 表名 not in between and 表示在某個範圍之...