前段时间,有举过一些函数例子,如SUM,COUNT,MAX,MIN,AVG,当我们调用这些函数进行运算,再想对这些运算结果进行分组,那得需使用GROUP BY来实现。
下面先准备一些数据。创建一个表[RecordHits],并填充一些数据:


CREATE
TABLE
RecordHits
(
RId NVARCHAR ( 2 ),
DT DATE,
Hits INT
)
GO
INSERT INTO [ dbo ] . [ RecordHits ] VALUES
( ' R1 ' , ' 2011-01-23 ' , 30 ),
( ' R2 ' , ' 2011-01-23 ' , 33 ),
( ' R3 ' , ' 2011-01-23 ' , 29 ),
( ' R4 ' , ' 2011-01-23 ' , 31 ),
( ' R1 ' , ' 2011-01-24 ' , 25 ),
( ' R2 ' , ' 2011-01-24 ' , 35 ),
( ' R3 ' , ' 2011-01-24 ' , 43 ),
( ' R4 ' , ' 2011-01-24 ' , 37 ),
( ' R1 ' , ' 2011-01-25 ' , 24 ),
( ' R2 ' , ' 2011-01-25 ' , 40 ),
( ' R3 ' , ' 2011-01-25 ' , 36 ),
( ' R4 ' , ' 2011-01-25 ' , 42 ),
( ' R1 ' , ' 2011-01-26 ' , 36 ),
( ' R2 ' , ' 2011-01-26 ' , 42 ),
( ' R3 ' , ' 2011-01-26 ' , 27 ),
( ' R4 ' , ' 2011-01-26 ' , 33 )
GO
(
RId NVARCHAR ( 2 ),
DT DATE,
Hits INT
)
GO
INSERT INTO [ dbo ] . [ RecordHits ] VALUES
( ' R1 ' , ' 2011-01-23 ' , 30 ),
( ' R2 ' , ' 2011-01-23 ' , 33 ),
( ' R3 ' , ' 2011-01-23 ' , 29 ),
( ' R4 ' , ' 2011-01-23 ' , 31 ),
( ' R1 ' , ' 2011-01-24 ' , 25 ),
( ' R2 ' , ' 2011-01-24 ' , 35 ),
( ' R3 ' , ' 2011-01-24 ' , 43 ),
( ' R4 ' , ' 2011-01-24 ' , 37 ),
( ' R1 ' , ' 2011-01-25 ' , 24 ),
( ' R2 ' , ' 2011-01-25 ' , 40 ),
( ' R3 ' , ' 2011-01-25 ' , 36 ),
( ' R4 ' , ' 2011-01-25 ' , 42 ),
( ' R1 ' , ' 2011-01-26 ' , 36 ),
( ' R2 ' , ' 2011-01-26 ' , 42 ),
( ' R3 ' , ' 2011-01-26 ' , 27 ),
( ' R4 ' , ' 2011-01-26 ' , 33 )
GO
下面例子,是对查询出每笔记点击数和进行分组:
SELECT
[
RId
]
,
SUM
(
[
Hits
]
)
AS
[
TotalHits
]
FROM
[
dbo
]
.
[
RecordHits
]
GROUP BY [ RId ]
GROUP BY [ RId ]
结果: