㈠ sql:group by
你用多个group by 不就行了,首先一个一个语句写 不要想着一下就完成它,比如第一条语句就根据1分组就行了,一次类推。 求和使用聚合函数sum()就行了 ,把思路弄清,慢慢写 就行了
㈡ sql group by用法
1. select top 1 姓名,sum(分数) as 分数总和 from 表名 group by 姓名
order by 分数总和 desc
2. select 姓名 from 表名 group by 姓名 having min(分数)>90
测试通过
㈢ sql group by
加上显示的列,不加上avg/max聚合结果
select id_a,data_a,b.name_b,c.name_c,c.type_c from table_a a
left join (select id_b,data_b,name_b from table_b) b on a.id_a =b.id_b
left join (select id_c,data_c,type_c from table_c) c on a.id_a=c.id_c
group by id_a,data_a,b.name_b,c.name_c,c.type_c
㈣ 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怎么用
SQL GROUP BY 语句
----------
合计函数 (比如 SUM) 常常需要添加 GROUP BY 语句。
----------
GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组。
语法
SELECTcolumn_name,aggregate_function(column_name)
FROMtable_name
WHEREcolumn_nameoperatorvalue
GROUPBYcolumn_name
㈥ sql里group的用法
在select 语句中可以使用group by 子句将行划分成较小的组,然后,使用聚组函数返回每一个组的汇总信息,另外,可以使用having子句限制返回的结果集。group by 子句可以将查询结果分组,并返回行的汇总信息Oracle 按照group by 子句中指定的表达式的值分组查询结果。
在带有group by 子句的查询语句中,在select 列表中指定的列要么是group by 子句中指定的列,要么包含聚组函数
select max(sal),job emp group by job;
(注意max(sal),job的job并非一定要出现,但有意义)
查询语句的select 和group by ,having 子句是聚组函数唯一出现的地方,在where 子句中不能使用聚组函数。
select deptno,sum(sal) from emp where sal>1200 group by deptno having sum(sal)>8500 order by deptno;
当在gropu by 子句中使用having 子句时,查询结果中只返回满足having条件的组。在一个sql语句中可以有where子句和having子句。having 与where 子句类似,均用于设置限定条件
where 子句的作用是在对查询结果进行分组前,将不符合where条件的行去掉,即在分组之前过滤数据,条件中不能包含聚组函数,使用where条件显示特定的行。
having 子句的作用是筛选满足条件的组,即在分组之后过滤数据,条件中经常包含聚组函数,使用having 条件显示特定的组,也可以使用多个分组标准进行分组。
查询每个部门的每种职位的雇员数
select deptno,job,count(*) from emp group by deptno,job;
㈦ 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 是什么意思啊请教谢谢
一般是从来对一些集合函数进行分组的。
例如
select count(UserId),UserClass from USERINFO group by userClass
这个语句就可以得到每个班级的人数
㈨ 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)进行了显示,每组都是由改组数据列表和改组数统计结果组成.
㈩ sql中关于group by
当id没有重复的时候,你这个语句和select * from table1 是一样的,当id有重复的,你的语句的含意是对重复的id只返回一行,就是unitprice最大的一行