當前位置:首頁 » 編程語言 » sql分組統計

sql分組統計

發布時間: 2022-01-13 04:32:27

sql 分組統計

--SQL SERVER 2000 動態SQL。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 課程 when ''' + 課程 + ''' then 分數 else 0 end) [' + 課程 + ']'
from (select distinct 課程 from tb) as a
set @sql = @sql + ' , cast(avg(分數*1.0) as decimal(18,2)) 平均分 , sum(分數) 總分 from tb group by 姓名'
exec(@sql)

普通行列轉換
問題:假設有張學生成績表(tb)如下:
姓名 課程 分數
張三 語文 74
張三 數學 83
張三 物理 93
李四 語文 74
李四 數學 84
李四 物理 94
想變成(得到如下結果):
姓名 語文 數學 物理
---- ---- ---- ----
李四 74 84 94
張三 74 83 93
-------------------
*/
create table tb(姓名 varchar(10) , 課程 varchar(10) , 分數 int)
insert into tb values('張三' , '語文' , 74)
insert into tb values('張三' , '數學' , 83)
insert into tb values('張三' , '物理' , 93)
insert into tb values('李四' , '語文' , 74)
insert into tb values('李四' , '數學' , 84)
insert into tb values('李四' , '物理' , 94)
go

--SQL SERVER 2000 靜態SQL,指課程只有語文、數學、物理這三門課程。(以下同)
select 姓名 as 姓名 ,
max(case 課程 when '語文' then 分數 else 0 end) 語文,
max(case 課程 when '數學' then 分數 else 0 end) 數學,
max(case 課程 when '物理' then 分數 else 0 end) 物理
from tb
group by 姓名

㈡ SQL分組統計

其實倒也不難,請解釋下:
需要統計的數據列表如下:
門店名稱|本在本消費金額|本在他消費金額|他在本消費金額
本在本、本在他、他在本 都是什麼意思?????

㈢ sql語句 如何分組後得到記錄總數

SELECT COUNT(*)

FROM (SELECT 分組欄位 FROM 表

GROUP BY 分組欄位

)別名


或者

SELECT COUNT(*)

FROM (SELECT distinct 分組欄位 FROM 表)別名

(3)sql分組統計擴展閱讀:

SQL分組查詢

在SQL Server中使用的分組查詢是ORDER BY子句,使用ORDER BY子句要同聚合函數配合使用才能完成分組查詢,在SELECT查詢的欄位中如果欄位沒有使用聚合函數就必須出現在ORDER BY子句中(即SELECT後邊的欄位名要麼出現在聚合函數中,要麼在ORDER BY子句中使用)

在分組查詢中還可以配合使用HAVING子句,定義查詢條件。

使用group by進行分組查詢

在使用group by關鍵字時,在select列表中可以指定的項目是有限制的,select語句中僅許以下幾項:

1、被分組的列

2、為每個分組返回一個值得表達式,例如用一個列名作為參數的聚合函數

3、group by 有一個原則,就是 select 後面的所有列中,沒有使用聚合函數的列,必須出現在 group by 後面

㈣ sql中根據表中一個欄位分組如何分別統計每個分組的記錄數

分組統計可以參考以下操作:

當數組重復的時候分組才有意義,因為一個人也可以分為一組,只是沒有意義而已,分組採用GROUP BY語句完成,語法如下:

㈤ sql分組合並統計查詢

select 部門,count(姓名) 人數,(select count(*) from biao where 部門=a.部門 and 狀態='狀態1') as 狀態1,(select count(*) from biao where 部門=a.部門 and 狀態='狀態2') as 狀態2,(select count(*) from biao where 部門=a.部門 and 狀態='狀態3') as 狀態3,(select count(*) from biao where 部門=a.部門 and 狀態='狀態4') as 狀態4 from biao a group by 部門

㈥ sql語句實現分組統計

方法和詳細的操作步驟如下:

1、第一步,創建一個測試表,詳細代碼見下圖,轉到下面的步驟。

㈦ 高級sql 分組查詢統計

用with rollup 可以生成匯總數據,我沒環境沒法測,只提供思路,用的是樓上oracle的語法
結果是下面這樣的,不知是不是你想要的
門店 年月日 數據1 數據2
a 2011-08-24 1 2
a 2011-08-25 3 4
a 2011-08合計: 4 6
a 2011-09-01 5 6
a 2011-09合計: 5 6
select
門店,
case when grouping(to_char(時間,'yyyy-mm-dd'))=0 then to_char(時間,'yyyy-mm')||'合計:' else to_char(時間,'yyyy-mm-dd') end as 年月日
sum(數據1) as 數據1,
sum(數據2) as 數據2
from tab
group by 門店,to_char(時間,'yyyy-mm'),to_char(時間,'yyyy-mm-dd') with rollup
order by to_char(時間,'yyyy-mm'),to_char(時間,'yyyy-mm-dd')

㈧ sql語句 怎麼分組統計

USEtest;
CREATETABLEIFNOTEXISTStable1(
idINTPRIMARYKEY,
datetimeColDATETIMENOTNULL,
contentVARCHAR(256)
);
INSERTINTOtable1(id,datetimeCol,content)VALUES(1,"2018-01-0102:02:00","abc");
INSERTINTOtable1(id,datetimeCol,content)VALUES(2,"2018-03-0404:02:00","zxc");
INSERTINTOtable1(id,datetimeCol,content)VALUES(3,"2018-01-0102:18:00","abc12");
INSERTINTOtable1(id,datetimeCol,content)VALUES(4,"2018-04-0423:01:40","mb");
SELECTgroupCol,COUNT(id)AScountColFROM(SELECTEXTRACT(HOURFROMdatetimeCol)ASgroupCol,idFROMtable1);

結果為:

groupCol, countCol

2, 2

4, 1

23, 1

㈨ sql 語句如何分組統計,並用統計結果除以150

直接加上運算符試試: select sj,count(sj)/數 as 平均數 from sheet1 group by sj

熱點內容
玩qq三國要什麼樣的電腦配置 發布:2024-09-20 00:50:57 瀏覽:445
樹莓派zero編譯驅動 發布:2024-09-20 00:50:56 瀏覽:483
上傳文件文件夾找不到 發布:2024-09-20 00:26:32 瀏覽:915
承台箍筋加密區 發布:2024-09-20 00:26:31 瀏覽:228
筆記本什麼配置能流暢運行cf 發布:2024-09-20 00:14:19 瀏覽:952
實測華為編譯器 發布:2024-09-19 23:50:52 瀏覽:822
linux匯總 發布:2024-09-19 23:46:39 瀏覽:453
阿里雲伺服器環境搭建教程 發布:2024-09-19 23:21:58 瀏覽:837
黃色文件夾圖標 發布:2024-09-19 23:19:22 瀏覽:684
mysql資料庫導出導入 發布:2024-09-19 23:00:47 瀏覽:183