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

分組sql

發布時間: 2022-01-08 05:18:35

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中分組短語是:group by。

GROUP BY 語句

GROUP BY 語句用於結合合計函數,根據一個或多個列對結果集進行分組。

GROUP BY 語法

SELECT column_name, aggregate_function(column_name)FROM table_name WHERE column_name operator valueGROUP BY column_name

Group By 的使用:

1、 Group By [Expressions]:

這個恐怕是Group By語句最常見的用法了,Group By + [分組欄位](可以有多個)。在執行了這個操作以後,數據集將根據分組欄位的值將一個數據集劃分成各個不同的小組。比如有如下數據集,其中水果名稱(FruitName)和出產國家(ProctPlace)為聯合主鍵:


SELECTFruitName,ProctPlace,Price,IDASIDE,Discount
FROMT_TEST_FRUITINFO
WHERE(ProctPlace=N'china')ORDERBYIDE

這里只有在ORDER BY語句中才可以使用IDE,其他條件語句中如果需要引用列名則只能使用ID,而不能使用IDE。

以上就是Group By的相關使用說明。內容參考與網站CSDN中的「SQL語句Group By 語句小結「。

❸ 分組sql語句

正常情況下,一樓的執行後會報錯,因為分組時丟下了Dep.DepName
再一個,你也沒問清楚,你想取Sale表裡的什麼欄位,是銷售額的匯總還是條數?這樣說不清楚的話就沒法寫了,再說,如果單純的靠Sale.DepID和Sale.ProdID這兩個欄位分組,其他兩個表根本就沒用,因為這兩個欄位在銷售表中都存在

❹ SQL 分組

select
學生編號,學生姓名,sum(分數)
as
總分數
from
student
group
by
學生編號,學生姓名
學生編號分組放在姓名前面
這樣即使姓名一樣
但是學號不一樣
還是2條值!~

資料庫中如何分類、分組並總計SQL數據

通常,我們確實需要對所有數據進行排序。SQL的ORDER BY子句將數據按字母或數字順序進行排列。因此,同類數據明顯分類到各個組中。然而,這些組只是分類的結果,它們並不是真正的組。ORDER BY顯示每一個記錄,而一個組可能代表多個記錄。 2、減少組中的相似數據 分類與分組的最大不同在於:分類數據顯示(任何限定標准內的)所有記錄,而分組數據不顯示這些記錄。GROUP BY子句減少一個記錄中的相似數據。例如,GROUP BY能夠從重復那些值的源文件中返回一個唯一的郵政編碼列表: SELECTZIP FROMCustomers GROUPBYZIP 僅包括那些在GROUP BY和SELECT列列表中字義組的列。換句話說,SELECT列表必須與GROUP列表相匹配。只有一種情況例外:SELECT列表能夠包含聚合函數。(而GROUP BY不支持聚合函數。) 記住,GROUP BY不會對作為結果產生的組分類。要對組按字母或數字順序排序,增加一個ORDER BY子句(#1)。另外,在GROUP BY子句中您不能引用一個有別名的域。組列必須在根本數據中,但它們不必出現在結果中。 3、分組前限定數據 您可以增加一個WHERE子句限定由GROUP BY分組的數據。例如,下面的語句僅返回肯塔基地區顧客的郵政編碼列表。 SELECTZIP FROMCustomers WHEREState='KY' GROUPBYZIP 在GROUP BY子句求數據的值之前,WHERE對數據進行過濾,記住這一點很重要。

❻ sql 分組再分組 語句怎麼寫

你再說明一下 更進一步要求是:上述記錄中,只要czy欄位內容有不同的 是什麼意思?
比如說這樣的記錄
02 001
02 001
兩個欄位都相同 那麼這個查詢要不要呢?
再比如
02 001
02 001
02 002
查詢出來的又是什麼?三條記錄都要嗎?

❼ SQL語句中,如何根據條件分組

首先,使用下面語句:
select date, count(date) cnt from user where date is not null group by date
結果:
date cnt
1月 2
2月 2
3月 1

在上面語句基礎上改進,使之與要求結果一致:
select max(case when date = '1月' then cnt else 0 end ) 1月,
max(case when date = '2月' then cnt else 0 end ) 2月,
max(case when date = '3月' then cnt else 0 end ) 3月
from (select date, count(date) cnt from user where date is not null group by date)

❽ sql語句實現分組統計

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

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

❾ SQL語句分組怎麼寫

1.如果你的時間格式是2012-01-13 17:35:52.217這樣的形式,(主要是那個01不要是1),用下面這個 SELECT convert(varchar(10),時間,23),SUM(數字數據) FROM 表 group by convert(varchar(10),時間,23) 2.如果你的時間格式不是上面的格式,先轉化成datetime: SELECT convert(varchar(10),cast(時間 as datetime),23) ,SUM(數字數據) FROM 表 group by convert(varchar(10),cast(時間 as datetime),23) 3.如果報錯,請追問~

熱點內容
javaurl的正則表達式 發布:2024-11-24 15:53:45 瀏覽:245
c語言只可以執行編譯文件 發布:2024-11-24 15:53:33 瀏覽:756
126郵件伺服器地址 發布:2024-11-24 15:52:46 瀏覽:214
微信80安卓什麼時候更新動態 發布:2024-11-24 15:40:54 瀏覽:480
破天窩窩腳本 發布:2024-11-24 15:40:53 瀏覽:112
王者榮耀蘋果轉安卓怎麼轉的 發布:2024-11-24 15:40:49 瀏覽:677
取消win10開機密碼怎麼設置 發布:2024-11-24 15:26:03 瀏覽:796
編譯原理for循環三地址碼 發布:2024-11-24 15:16:44 瀏覽:201
php2048 發布:2024-11-24 15:14:49 瀏覽:894
php旋轉圖片 發布:2024-11-24 15:03:48 瀏覽:534