当前位置:首页 » 编程语言 » 分组查询语句sql

分组查询语句sql

发布时间: 2022-05-07 03:45:31

sql语句分组查询

select case_id,
Month||'月份',
sum(jqjb_id)
from (
select case_id,
to_char(recDate,'MM') Month,
jqjb_id
from table_name
)
group by case_id,
Month||'月份'

如果以上字段是实际字段,那么把 table_name修改成实际表明即可完成查询

② sql分组查询语句

只是查询出来么?
select store_no 商品,in_code 识别码,quantity 数量,store_no 仓库,supplier_no 供货商 from (表明) where in_date=‘指定的日期’
(⊙﹏⊙)b,你的商品,仓库,供货商应该都是关联了字典表的

③ sql 分组查询语句

这个很简单啊,就是四个表之间串一下,上sql
select A.NAME 影片名,B.RUNTIME 放映时间,C.TIME 订单时间,C.NUM 顾客编号
from FILM A,RUN B,ORDER C,RESERVATIONS D
WHERE D.TIME=C.TIME AND D.FMN=A.FMN AND A.FMN=B.FMN
试试吧

④ 求几个简单的SQL单表分组查询语句

求1年级男生里分数最高者的所有列信息;
select
top
1
*
from

where
年级=1
and
性别='男'
order
by
分数
desc
求1年级里分数最高者所有列信息
select
top
1
*
from

where
年级=1
order
by
分数
desc
求全校成绩最高的女生的所有列信息
select
top
1
*
from

where
性别='女'
order
by
分数
desc
求每个年级成绩最高者的所有列信息
这个,等我想想先。。

⑤ 请使用你熟悉的一种数据库,用SQL语句写出分组查询语句

有一张表如下:
create table topic
(
Topicid int,
title nvarchar(10),
boardid int,
addtime datetime
)
内容如下:
insert topic select
1, 'abc', 100, '2007-1-1'
union all select 2, 'era', 101, '2007-1-2'
union all select 3, 'avx', 102, '2007-1-3'
union all select 4, 'zcv', 100, '2007-1-4'
union all select 5, 'jhv', 100, '2007-1-5'
union all select 6, 'ztw', 103, '2007-1-6'
union all select 7, 'xcv', 102, '2007-1-7'
union all select 8, 'zww', 104, '2007-1-8'
union all select 9, 'zqw', 105, '2007-1-9'
union all select 10, 'zti', 103, '2007-1-10'
要求:按照boardid分组,按照datetime排序,取出前五条
语句:
select top 5 boardid from
(
select boardid,max(addtime) as addtime
from topic
group by boardid
) tmp order by addtime desc

解释:
1,group by 和 order by 不能同时使用,所以当要分组后再排序的时候就要嵌套(先分好组再排序)
2,但是在group by的时候,你要查询的字段必须是你分组的字段,如果group by 两个字段,分组时是按照两个字段同时相等的分组,因此达不到自己想要的结果.
但是使用一个字段分组,要查到两个字段就得:
select boardid,max(addtime) as addtime
from topic
group by boardid

⑥ SQL中的Group By的查询过程多列分组的查询过程是怎样的

Group By子句
Group By子句可以将表的行划分为不同的组。分别总结每个组,这样就可以控制想要看见的详细信息的级别。

语法:

[ Group By [ ALL ] Group_By_expression[ ,...n ]

[ WITH { CUBE | ROLLUP } ] ]

参数说明:

ALL:包含所有组和结果集,甚至包含那些任何行都不满足WHERE子句指定的搜索条件的组和结果集。如果指定了ALL,将对组中不满足搜索条件的汇总列返回空值。不能用CUBE或ROLLUP运算符指定ALL。如果访问远程表的查询中有WHERE子句,则不支持Group By ALL操作。

Group_By_expression:对其执行分组的表达式。Group_By_expression也称为分组列。Group_By_expression可以是列或引用列的非聚合表达式。在选择列表内定义的列的别名不能用于指定分组列。对于不包含CUBE或ROLLUP的Group By子句,Group_By_ expression的项数受查询所涉及的Group By列的大小、聚合列和聚合值的限制。该限制从8060字节的限制开始,对保存中间查询结果所需的中间级工作表有8060字节的限制。如果指定了CUBE或ROLLUP,则最多只能有10个分组表达式。

CUBE:指定在结果集内不仅包含由Group By提供的正常行,还包含汇总行。在结果集内返回每个可能的组和子组组合的Group By汇总行。Group By汇总行在结果中显示为NULL,但可用来表示所有值。使用GroupING函数确定结果集内的空值是否是Group By汇总值。结果集内的汇总行数取决于Group By子句内包含的列数。Group By子句中的每个操作数(列)绑定在分组NULL下,并且分组适用于所有其他操作数(列)。由于CUBE返回每个可能的组和子组组合,因此,不论指定分组列所使用的是什么顺序,行数都相同。

ROLLUP:指定在结果集内不仅包含由Group By提供的正常行,还包含汇总行。按层次结构顺序,从组内的最低级别到最高级别汇总组。组的层次结构取决于指定分组列时所使用的顺序。更改分组列的顺序会影响在结果集内生成的行数。

使用Group By子句的注意事项。

(1)在SELECT子句的字段列表中,除了聚集函数外,其他所出现的字段一定要在Group By子句中有定义才行。例如“Group By A,B”,那么“SELECT SUM(A),C”就有问题,因为C不在Group By中,但是SUM(A)是可以的。

(2)SELECT子句的字段列表中不一定要有聚集函数,但至少要用到Group By子句列表中的一个项目。例如“Group By A,B,C”,则“SELECT A”是可以的。

(3)在SQL Server中text、ntext和image数据类型的字段不能作为Group By子句的分组依据。

(4)Group By子句不能使用字段别名。
1.按单列进行分组

Group By子句可以基于指定某一列的值将数据集合划分为多个分组,同一组内所有记录在分组属性上具有相同值。

示例:

把“student”表按照“性别”这个单列进行分组。在查询分析器中输入的SQL语句如下:

use student

select 性别

from student

Group By 性别

但仍然要强调SELECT子句必须与Group By后的子句或者是分组函数列相一致。

例如,由于下列查询中“姓名”列既不包含在Group By子句中,也不包含在分组函数中,所以是错误的。错误的SQL语句如下:

use student select 姓名,性别 from student Group By 性别

例如,在“grade”表中,按“学期”分组查询。SQL语句如下:

use studnet select 学期 from grade Group By 学期

2.按多列进行分组

Group By子句可以基于指定多列的值将数据集合划分为多个分组。

示例:

在“student”表中,按照“性别”和“年龄”列进行分组。在查询分析中输入的SQL语句如下:

use student

select 性别,年龄

from student

Group By 性别,年龄

在“student”表中,首先按照“性别”分组,然后再按照“年龄”分组。

再举一个例子,例如,在“grade”表中,按照“学号”和“课程代号”列进行分组。SQL语句如下:

use student

select 学号,课程代号 from grade Group By 学号,课程代号

按多列进行分组时有NULL组的是如何处理的。当表按多列进行分组时有NULL组,这时NULL被作为一个特定值处理,就像其他任何值一样。也就是说,如果在某个分组列中存在两个NULL,则按它们有相同的值那样处理,并将它们放在相同的组中。

示例:

在“grade”表中,按“学期”和“课程代号”列进行分组。在查询分析器中输入的SQL语句如下:

use student

select 学期,课程代号

from grade

Group By 学期,课程代号

3.与聚集函数一起使用

Group By子句是经常与聚集函数一起使用。如果SELECT子句中包含聚集函数,则计算每组的汇总值,当用户指定Group By时,选择列表中任一非聚集表达式内的所有列都应包含在Group By列表中,或者Group By表达式必须与选择列表表达式完全匹配。

示例:

在“student”表中,分别求男女生的平均年龄。在查询分析器中输入的SQL语句如下:

use student

select 性别,avg(年龄) as 平均年龄

from student

Group By 性别

例如,在“student”表中,分别求有多少个男生和女生。SQL语句如下:

use student

select 性别,count(性别) as 人数 from student Group By 性别

说明:关于聚合函数的详细讲解可参阅9.2.1节。

4.与HAVING子句一起使用

HAVING子句对Group By子句选择出来的结果进行再次筛选,最后输出符合HAVING子句中条件的记录。HAVING子句的语法与WHERE子句的语法相类似,惟一不同的是HAVING子句中可以包含聚合函数。

语法:

[HAVING <search_condition>]

参数说明:

<search_condition>:指定组或聚合应满足的搜索条件。当HAVING与Group By ALL一起使用时,HAVING 子句替代ALL。

示例:

在“student”表中,按“性别”分组求平均年龄,并且查询其平均年龄大于21的学生信息。在查询分析器中输入的SQL语句如下:

use student

select avg(年龄), 性别

from student

Group By 性别

having avg(年龄)>21

在“grade”表中,按“学期”分组求平均成绩,并且查询“平均成绩”大于93的课程信息。在查询分析器中输入的SQL语句如下:
+1 已赞过

⑦ sql多条件分组查询,求sql语句。

分组是用来聚集汇总的,如求平均、求总和、求最大等
你这个不需要分组,直接排序就可以了

selectname,datefromtableorderbynameasc,datedesc

如果每组要按date的降序排列,也挺简单

with t1 as (select name, max(date) md from table group by name,

t2 as (select table.name name, table.date date, t1.md from table join t1 on table.name=t1.name

order by t1.md)

select name,date from t2

⑧ 求SQL大神给写一个分组查询语句

select 公司编号,部门编号,
max(case when substring(部门分组编号,1,1)='A' then 部门分组编号 else '-' end) 部门分组A,
max(case when substring(部门分组编号,1,1)='B' then 部门分组编号 else '-' end) 部门分组B,
max(case when substring(部门分组编号,1,1)='C' then 部门分组编号 else '-' end) 部门分组C,
max(case when substring(部门分组编号,1,1)='D' then 部门分组编号 else '-' end) 部门分组D
from table group by 公司编号,部门编号

⑨ sql分组查询的完整语句

分组查询 group by 主要是对(count,sum,avg,min,max)
例如
表A
a b c
一 1 2
一 1 3
二 2 5
三 7 7
二 9 9
select a,sum(b),sum(c) from A group by a
对分组数据进行限制
select a,sum(b),sum(c) from A group by a having sum(b)>5

热点内容
kindeditor上传图片绝对路径 发布:2025-05-14 01:06:27 浏览:274
广数g96编程实例 发布:2025-05-14 01:01:56 浏览:911
安卓手机如何做一个小程序 发布:2025-05-14 01:01:51 浏览:968
linux怎么访问外网 发布:2025-05-14 01:00:24 浏览:952
玩dnf什么配置不卡卡 发布:2025-05-14 00:57:02 浏览:806
android优秀项目源码 发布:2025-05-14 00:54:58 浏览:205
dell服务器怎么装系统 发布:2025-05-14 00:50:52 浏览:593
csgo怎么进日本服务器 发布:2025-05-14 00:39:18 浏览:747
ip查服务器商家 发布:2025-05-14 00:33:37 浏览:212
云服务器布 发布:2025-05-14 00:27:55 浏览:78