当前位置:首页 » 操作系统 » 数据库分组

数据库分组

发布时间: 2022-01-31 00:20:41

数据库查询后怎么分组 请详细讲解下group by

group
by
通常的用法是分组计数和求和
group
by
dept_id
就是以
dept_id
来分组,你的记录集里只有
3
个不同的
dept_id
所以结果是
3
条记录。

select
*,
COUNT(*)
AS
"nCount"
from
emp
group
by
dept_id
结果那
nCount
就是对应每个
dept_id
的记录数计数

select
*,
SUM(salary)
AS
"nTotal"
from
emp
group
by
dept_id
结果那
nTotal
就是对应每个
dept_id

salary
合计

sql中什么情况下用分组

你指的应该是“group by”吧?
其实可以这样理解,举个例子:
比如,一张“学生成绩表”,现在要求你分别求出(注意是“分别”)男生和女生的平均成绩(注:指的是“所有男生的平均成绩”和“所有女生的平均成绩”),此时,你就必须通过“性别”字段进行分组,然后才可以分别求出男生和女生平均成绩!
【个人感觉学习这些语句的时候最好赋予实际的环境中去理解,这样更清楚也更好理解。希望我的回答对你有所帮助!】

⑶ 如何进行数据库分组统计

两种分组方法:
透视表法:操作简单,但分组步长固定,必须等距分组,无法灵活调整;
函数法:操作稍微复杂,但分组步长可灵活调整,可进行不等距分组。

⑷ 在数据库中 如何进行分类分组并总计SQL信息

可以增加一个WHERE子句限定由GROUP BY分组的数据。例如,下面的语句仅返回肯塔基地区顾客的邮政编码列表。
SELECT ZIP
FROM Customers
WHERE State = 'KY'
GROUP BY ZIP
在GROUP BY子句求数据的值之前,WHERE对数据进行过滤,记住这一点很重要。
和GROUP BY一样,WHERE不支持聚合函数。

⑸ sql 分组统计

--SQL SERVER 2000 动态SQL。
declare @sql varchar(8000)
set @sql = 'select 姓名 '
select @sql = @sql + ' , max(case 课程 when ''' + 课程 + ''' then 分数 else 0 end) [' + 课程 + ']'
from (select distinct 课程 from tb) as a
set @sql = @sql + ' , cast(avg(分数*1.0) as decimal(18,2)) 平均分 , sum(分数) 总分 from tb group by 姓名'
exec(@sql)

普通行列转换
问题:假设有张学生成绩表(tb)如下:
姓名 课程 分数
张三 语文 74
张三 数学 83
张三 物理 93
李四 语文 74
李四 数学 84
李四 物理 94
想变成(得到如下结果):
姓名 语文 数学 物理
---- ---- ---- ----
李四 74 84 94
张三 74 83 93
-------------------
*/
create table tb(姓名 varchar(10) , 课程 varchar(10) , 分数 int)
insert into tb values('张三' , '语文' , 74)
insert into tb values('张三' , '数学' , 83)
insert into tb values('张三' , '物理' , 93)
insert into tb values('李四' , '语文' , 74)
insert into tb values('李四' , '数学' , 84)
insert into tb values('李四' , '物理' , 94)
go

--SQL SERVER 2000 静态SQL,指课程只有语文、数学、物理这三门课程。(以下同)
select 姓名 as 姓名 ,
max(case 课程 when '语文' then 分数 else 0 end) 语文,
max(case 课程 when '数学' then 分数 else 0 end) 数学,
max(case 课程 when '物理' then 分数 else 0 end) 物理
from tb
group by 姓名

⑹ 我想在数据库中的一个表中查询出全部数据 并且按照一个分组和排序

select
分组列1,分组列2...,
聚合列1,聚合列2...
from 表
group by 分组列1,分组列2...
order by 分组列或聚合列
--------
分组查询中,做为查询结果显示的列,必须是用于分组的列,或者聚合的列.
比如:sum(),count(),avg()等等.

⑺ 数据库中如何分类、分组并总计SQL数据

通常,我们确实需要对所有数据进行排序。SQL的ORDER BY子句将数据按字母或数字顺序进行排列。因此,同类数据明显分类到各个组中。然而,这些组只是分类的结果,它们并不是真正的组。ORDER BY显示每一个记录,而一个组可能代表多个记录。 2、减少组中的相似数据 分类与分组的最大不同在于:分类数据显示(任何限定标准内的)所有记录,而分组数据不显示这些记录。GROUP BY子句减少一个记录中的相似数据。例如,GROUP BY能够从重复那些值的源文件中返回一个唯一的邮政编码列表: SELECTZIP FROMCustomers GROUPBYZIP 仅包括那些在GROUP BY和SELECT列列表中字义组的列。换句话说,SELECT列表必须与GROUP列表相匹配。只有一种情况例外:SELECT列表能够包含聚合函数。(而GROUP BY不支持聚合函数。) 记住,GROUP BY不会对作为结果产生的组分类。要对组按字母或数字顺序排序,增加一个ORDER BY子句(#1)。另外,在GROUP BY子句中您不能引用一个有别名的域。组列必须在根本数据中,但它们不必出现在结果中。 3、分组前限定数据 您可以增加一个WHERE子句限定由GROUP BY分组的数据。例如,下面的语句仅返回肯塔基地区顾客的邮政编码列表。 SELECTZIP FROMCustomers WHEREState='KY' GROUPBYZIP 在GROUP BY子句求数据的值之前,WHERE对数据进行过滤,记住这一点很重要。

⑻ SQL 分组

select
学生编号,学生姓名,sum(分数)
as
总分数
from
student
group
by
学生编号,学生姓名
学生编号分组放在姓名前面
这样即使姓名一样
但是学号不一样
还是2条值!~

⑼ 数据库按不同规则分组怎么做

Finereport中有一个自定义分组-分组报表可以解决这个需求:

1.问题描述

通常情况下,数据是通过某一字段来进行分组,如日期字段,每个日期对应一个组,此时分组过于详细,希望按照年与周来分组显示。如下图:

3.保存并预览

保存模板,最终效果如上图。

⑽ SQL2000数据库里分组是什么意思

group by, 是分组检测,若在分组上还有条件要用having来指出条件
count是统计符合条件的数量并去掉重复的,给你个例子:
有学生表S(s#,sn,sex,age)即学号,姓名,性别,年龄,课程表C(c#,cn)课程号,课程名选课表SC(s#,c#,grade)学号,课程号,成绩
例:检索出来选修课程至少等于3门的学生学号和选课的门数
SQL>select s#,count(*)
from sc
group by s#
having count(*)>=3;不知道你能不能明白

热点内容
数据库设计模板 发布:2024-11-15 00:47:25 浏览:825
编程的悟性 发布:2024-11-15 00:47:24 浏览:733
主流可编译语言 发布:2024-11-15 00:42:23 浏览:729
excel缓存清除 发布:2024-11-15 00:39:53 浏览:486
机械键盘可编程 发布:2024-11-15 00:39:09 浏览:912
php判断字符开头 发布:2024-11-15 00:35:33 浏览:507
网易苹果游戏怎么转移到安卓 发布:2024-11-15 00:07:52 浏览:270
win7php环境搭建 发布:2024-11-15 00:06:55 浏览:17
erpjava 发布:2024-11-14 23:52:23 浏览:253
电脑版地平线四怎么连上服务器 发布:2024-11-14 23:46:42 浏览:472