資料庫分組
⑴ 資料庫查詢後怎麼分組 請詳細講解下group by
group
by
通常的用法是分組計數和求和
group
by
dept_id
就是以
dept_id
來分組,你的記錄集里只有
3
個不同的
dept_id
所以結果是
3
條記錄。
若
select
*,
COUNT(*)
AS
"nCount"
from
emp
group
by
dept_id
結果那
nCount
就是對應每個
dept_id
的記錄數計數
若
select
*,
SUM(salary)
AS
"nTotal"
from
emp
group
by
dept_id
結果那
nTotal
就是對應每個
dept_id
的
salary
合計
⑵ sql中什麼情況下用分組
你指的應該是「group by」吧?
其實可以這樣理解,舉個例子:
比如,一張「學生成績表」,現在要求你分別求出(注意是「分別」)男生和女生的平均成績(註:指的是「所有男生的平均成績」和「所有女生的平均成績」),此時,你就必須通過「性別」欄位進行分組,然後才可以分別求出男生和女生平均成績!
【個人感覺學習這些語句的時候最好賦予實際的環境中去理解,這樣更清楚也更好理解。希望我的回答對你有所幫助!】
⑶ 如何進行資料庫分組統計
兩種分組方法:
透視表法:操作簡單,但分組步長固定,必須等距分組,無法靈活調整;
函數法:操作稍微復雜,但分組步長可靈活調整,可進行不等距分組。
⑷ 在資料庫中 如何進行分類分組並總計SQL信息
可以增加一個WHERE子句限定由GROUP BY分組的數據。例如,下面的語句僅返回肯塔基地區顧客的郵政編碼列表。
SELECT ZIP
FROM Customers
WHERE State = 'KY'
GROUP BY ZIP
在GROUP BY子句求數據的值之前,WHERE對數據進行過濾,記住這一點很重要。
和GROUP BY一樣,WHERE不支持聚合函數。
⑸ 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 姓名
⑹ 我想在資料庫中的一個表中查詢出全部數據 並且按照一個分組和排序
select
分組列1,分組列2...,
聚合列1,聚合列2...
from 表
group by 分組列1,分組列2...
order by 分組列或聚合列
--------
分組查詢中,做為查詢結果顯示的列,必須是用於分組的列,或者聚合的列.
比如:sum(),count(),avg()等等.
⑺ 資料庫中如何分類、分組並總計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 分組
select
學生編號,學生姓名,sum(分數)
as
總分數
from
student
group
by
學生編號,學生姓名
學生編號分組放在姓名前面
這樣即使姓名一樣
但是學號不一樣
還是2條值!~
⑼ 資料庫按不同規則分組怎麼做
Finereport中有一個自定義分組-分組報表可以解決這個需求:
1.問題描述
通常情況下,數據是通過某一欄位來進行分組,如日期欄位,每個日期對應一個組,此時分組過於詳細,希望按照年與周來分組顯示。如下圖:
3.保存並預覽
保存模板,最終效果如上圖。
⑽ SQL2000資料庫里分組是什麼意思
group by, 是分組檢測,若在分組上還有條件要用having來指出條件
count是統計符合條件的數量並去掉重復的,給你個例子:
有學生表S(s#,sn,sex,age)即學號,姓名,性別,年齡,課程表C(c#,cn)課程號,課程名選課表SC(s#,c#,grade)學號,課程號,成績
例:檢索出來選修課程至少等於3門的學生學號和選課的門數
SQL>select s#,count(*)
from sc
group by s#
having count(*)>=3;不知道你能不能明白