『壹』 sql中Group By 用法是什麼
GROUP BY 是分組查詢, 一般 GROUP BY 是和 聚合函數配合使用,你可以想想
你用了GROUP BY 按 ITEM.ITEMNUM 這個欄位分組,那其他欄位內容不同,變成一對多又改如何顯示呢,比如下面所示
A B
1 abc
1 bcd
1 asdfg
select A,B from table group by A
你說這樣查出來是什麼結果,
A B
abc
1 bcd
asdfg
右邊3條如何變成一條,所以需要用到聚合函數,比如
select A,count(B) 數量 from table group by A
這樣的結果就是
A 數量
1 3
group by 有一個原則,就是 select 後面的所有列中,沒有使用聚合函數的列,必須出現在 group by 後面
『貳』 sql group by用法
1. select top 1 姓名,sum(分數) as 分數總和 from 表名 group by 姓名
order by 分數總和 desc
2. select 姓名 from 表名 group by 姓名 having min(分數)>90
測試通過
『叄』 sql select group by 語句
select sum(雨量1),sum(雨量2)
,sum(雨量3), a.站名
from (
SELECT SUM(雨量) AS 雨量1, 站名
FROM dbo.XJrain
WHERE (日期 > 20090829)
GROUP BY 站名 ) a
left join
(SELECT SUM(雨量) AS 雨量2, 站名
FROM dbo.XJrain
WHERE (日期 > 20090830)
GROUP BY 站名) b on (a.站名=b.站名)
left join
(SELECT SUM(雨量) AS 雨量3, 站名
FROM dbo.XJrain
WHERE (日期 > 20090831)
GROUP BY 站名 )c on (b.站名=a.站名)
group by 站名
或者這樣
select 站名,
sum(case when 日期 > 20090829 then 雨量 else 0 end ) 雨量1,
sum(case when 日期 > 20090830 then 雨量 else 0 end ) 雨量2,
sum(case when 日期 > 20090831 then 雨量 else 0 end ) 雨量3,
from dbo.XJrain
group by 站名
沒測試 ,你試試吧。
『肆』 SQL語句的select和group by問題請教
select A.a,B.b,count(C.c),D.d from A,B,C,D,E group by E.e,A.a,B.b,D.d
試試看是不是你想要的
『伍』 在SQL中分組查詢 Group by 的存在條件是什麼
GROUP BY 子句用來為結果集中的每一行產生聚合值。如果聚合函數沒有使用 GROUP BY 子句,則只為 SELECT 語句報告一個聚合值。
USE AdventureWorks;
GO
SELECT SalesOrderID, SUM(LineTotal) AS SubTotal
FROM Sales.SalesOrderDetail sod
GROUP BY SalesOrderID
ORDER BY SalesOrderID ;
GOGROUP BY 關鍵字後跟一個列的列表,稱為組合列。GROUP BY 子句限制結果集中的行數,每個不同的值在組合列中只佔一行。每個結果集行都包含與其組合列中的特定值相關的匯總數據。
當 SELECT 語句中包含 GROUP BY 關鍵字時,對可以在選擇列表中指定的項目有一些限制。選擇列表中允許的項目是:
組合列。
為組合列中的每個值只返回一個值的表達式,例如將列名作為其參數之一的聚合函數。這些函數稱為矢量聚合。
簡單點來說就是select 語句中調用的函數如果能夠使用group by 才能存在group by 子句 通常是一些統計函數返回集合的情況。例如sum()
『陸』 在SQL查詢GROUP BY語句用於什麼
從關系資料庫中的SQL查詢得知,GROUP BY語句用於組合聚合函數以基於一個或多個列對結果集進行分組。
例如:
select distinct username from users group by username having count(*)>1
這句話的意思是:首先按用戶名分組,然後找到其中count(*)> 1的記錄,
即:查詢以在用戶表中查找具有相同用戶名的多個記錄的用戶名。
(6)sqlselectgroupby擴展閱讀:
通常在SELECT語句中使用分組子句,並且將進行聚合操作。 但是,分組子句對於執行聚合操作不是必需的。
例如,要查找直隸男同學的人數,此時只有一個合計值,因此無需將其分組。
SELECT COUNT(*)
from student
where ssex='男';
但是,當同一聚合操作有多個值時,必須使用分組子句。
例如:查找每個年齡段的學生人數。 此時存在多個與年齡有關的聚合值,因此必須將其分組。
『柒』 sql語句中的group by什麼意思
GROUPBY語句用於結合合計函數,根據一個或多個列對結果集進行分組。
舉幾個簡單例子
成績表(姓名,課程,成績)
『捌』 sql語句中的group by要怎麼用!!
1、定義
「Group
By」表達的意思就是按照「By」表明的規則對所有數據進行歸類,所謂的歸類就是將數據分成許多個「小區域」,對這些「小區域」里的數據進行處理。
2、原始表
3、簡單Group
By
示例1
select
類別,
sum(數量)
as
數量之和
from
A
group
by
類別
返回結果如下表,實際上就是分類匯總。
4、Group
By
和
Order
By
示例2
select
類別,
sum(數量)
AS
數量之和
from
A
group
by
類別
order
by
sum(數量)
desc
返回結果如下表
在Access中不可以使用「order
by
數量之和
desc」,但在SQL
Server中則可以。
5、Group
By中Select指定的欄位限制
示例3
select
類別,
sum(數量)
as
數量之和,
摘要
from
A
group
by
類別
order
by
類別
desc
示例3執行後會提示下錯誤,如下圖。這就是需要注意的一點,在select指定的欄位要麼就要包含在Group
By語句的後面,作為分組的依據;要麼就要被包含在聚合函數中。
6、Group
By
All
示例4
select
類別,
摘要,
sum(數量)
as
數量之和
from
A
group
by
all
類別,
摘要
示例4中則可以指定「摘要」欄位,其原因在於「多列分組」中包含了「摘要欄位」,其執行結果如下表
「多列分組」實際上就是就是按照多列(類別+摘要)合並後的值進行分組,示例4中可以看到「a,
a2001,
13」為「a,
a2001,
11」和「a,
a2001,
2」兩條記錄的合並。
7、Having與Where的區別
where
子句的作用是在對查詢結果進行分組前,將不符合where條件的行去掉,即在分組之前過濾數據,where條件中不能包含聚組函數,使用where條件過濾出特定的行。
having
子句的作用是篩選滿足條件的組,即在分組之後過濾數據,條件中經常包含聚組函數,使用having
條件過濾出特定的組,也可以使用多個分組標准進行分組。
示例5
select
類別,
sum(數量)
as
數量之和
from
A
group
by
類別
having
sum(數量)
>
18
示例6:Having和Where的聯合使用方法
select
類別,
SUM(數量)from
A
where
數量
gt;8
group
by
類別
having
SUM(數量)
gt;
10
8、Compute
和
Compute
By
select
*
from
A
where
數量
>
8
執行結果:
示例7:Compute
select
*
from
A
where
數量>8
compute
max(數量),min(數量),avg(數量)
執行結果如下:
compute子句能夠觀察「查詢結果」的數據細節或統計各列數據(如例10中max、min和avg),返回結果由select列表和compute統計結果組成。
示例8:Compute
By
select
*
from
A
where
數量>8
order
by
類別
compute
max(數量),min(數量),avg(數量)
by
類別
執行結果如下:
示例8與示例7相比多了「order
by
類別」和「...
by
類別」,示例10的執行結果實際是按照分組(a、b、c)進行了顯示,每組都是由改組數據列表和改組數統計結果組成.