当前位置:首页 » 数据仓库 » 数据库分组查询汇总
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据库分组查询汇总

发布时间: 2022-04-30 18:23:55

‘壹’ sql分组查询问题,如何把 在同一字段下具有不同值的 记录 按一定条件进行分组查询统计啊

用group by就可以解决。

比如表名为test,数据如下

id grade

1 10

1 20

2 40

2 30


现在要求按id分组查询grade的和,可以用如下语句:

selectid,sum(grade)asgradefromtestgroupbyid;


得到的结果是

id grade

1 30

2 70

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

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

‘叁’ SQL分组查询求和汇总

select name,[type],SUM(hour) from 表名 group by [type],name

‘肆’ sql查询怎么进行(多条件分组判断汇总)

sql多条件分组查询举例:
比如有两张表:
表一:
姓名 分数
——————
李一 2
李二 1
李三 1
张一 3
张二 2
张三 2
……
表二:

——



要查询表二中的姓的数据对表一进行分组,然后将分数统计出来。
sql语句写法如下:
SELECT
b. NAME,
sum(a.score) AS 分数
FROM
tb1 a
LEFT JOIN tb2 b ON SUBSTR(a.name FROM 1 FOR 1)= b.`name`
GROUP BY
b. NAME;
这个是Mysql的写法 Oracle把SubStr函数改一下就可以了。

‘伍’ sql中为什么要使用分组查询

分组查询一般用于统计数据,使用分组能让汇总结果一目了然。

1、如emp表中有如下数据:

‘陆’ 数据库 多表分组连接查询 做结果统计

select title,
sum(case when state=1 then 1 else 0 end) as 新建,
sum(case when state=2 then 1 else 0 end) as 已审,
sum(case when state=3 then 1 else 0 end) as 已删
from tb1
group by title

‘柒’ 能否在一条SQL语句里,将数据先按类型分组查询汇总,又按日期分组查询汇总

可以,用存储过程来做

‘捌’ sql语句 如何分组后得到记录总数

SELECT COUNT(*)

FROM (SELECT 分组字段 FROM 表

GROUP BY 分组字段

)别名


或者

SELECT COUNT(*)

FROM (SELECT distinct 分组字段 FROM 表)别名

(8)数据库分组查询汇总扩展阅读:

SQL分组查询

在SQL Server中使用的分组查询是ORDER BY子句,使用ORDER BY子句要同聚合函数配合使用才能完成分组查询,在SELECT查询的字段中如果字段没有使用聚合函数就必须出现在ORDER BY子句中(即SELECT后边的字段名要么出现在聚合函数中,要么在ORDER BY子句中使用)

在分组查询中还可以配合使用HAVING子句,定义查询条件。

使用group by进行分组查询

在使用group by关键字时,在select列表中可以指定的项目是有限制的,select语句中仅许以下几项:

1、被分组的列

2、为每个分组返回一个值得表达式,例如用一个列名作为参数的聚合函数

3、group by 有一个原则,就是 select 后面的所有列中,没有使用聚合函数的列,必须出现在 group by 后面

‘玖’ 怎么用数据库统计汇总啊

1.用SELECT语句对数据进行统计汇总
2.集合函数(聚合函数,统计函数)
3.为了有效处理查询得到的数据集合,SQL Server提供了一系列统计函数.
4.这些函数可以实现数据集合和汇总:
avg ([ALL|DISTINCT]列名) 求指定数字字段的平均值
sum ([ALL|DISTINCT]列名) 求指定数字字段的总和
max([ALL|DISTINCT]列名) 求指定数字字段中最大值
min ([ALL|DISTINCT]列名) 求指定数字字段中最小值
count([ALL|DISTINCT]列名) 求满足条件记录中指定字段不为空的记录个数
count(*) 求满足条件记录总数
**********************************************************************************************
5.用GROUP BY子句对记录分类统计汇总
格式:
GROUP BY 分组字段名列表[HAVING 条件表达式]
功能:按指定条件对指定字段依次分组进行统计汇总

注:
使用GROUP BY 的语句仍可用ORDER BY子句排序
但必须在GROUP BY之后可以使用别名但不允许对SELECT没指定的列排序
HAVING子句是对分组统计后的查询结果进行筛选.
使用GROUP BY 的select语句仍可用WHERE子句指定条件
**********************************************************************************************
说明:
Select 指定的字段必须包含且只含GROUP BY子句中指定的分组字段(可以为它指定别名),
其他必须是由集合函数组成的一个或多个计算列,统计函数中所使用的列不受限制.
GROUP BY子句中不允许使用字段或计算列的别名,可直接使用表达式.
GROUP BY子句指定表达式时,select指定的字段中可以不包括该表达式.
HAVING子句不允许使用别名
HAVING子句必须和GROUP BY一起使用,且设置的条件必须与GROUP BY 子句指定的分组字段有关

‘拾’ 数据库中如何分类、分组并总计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对数据进行过滤,记住这一点很重要。