‘壹’ 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)进行了显示,每组都是由改组数据列表和改组数统计结果组成.