问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

数据库 分组问题

发布网友 发布时间:2022-05-03 23:17

我来回答

7个回答

懂视网 时间:2022-05-04 03:38

分组函数:对表中一组记录进行操作,每次只返回一个结果。 常用的函数有:MIN,MAX,SUM,AVG,COUNT等 MIN和MAX返回每组的最小和最大。 eg:select min(salary),max(salary) from employees; SUM和AVG函数分别返回总和平均。 eg:select sum(salary),avg(salary)

分组函数:对表中一组记录进行操作,每次只返回一个结果。

常用的函数有:MIN,MAX,SUM,AVG,COUNT等


MIN和MAX返回每组的最小值和最大值。

eg:select min(salary),max(salary) from employees;


SUM和AVG函数分别返回总和平均值。

eg:select sum(salary),avg(salary) from emloyees;


count函数主要返回每组的记录条数。

eg:select count(*) from employees where job_id=;


GROUP BY...HAVING 子句的使用。

组函数忽略空值,可以使用NVL,NVL2,COALESCE函数处理空值

eg:相同职位相同经理的员工的平均工资。

select job_id,manager_id,avg(salary)

from employees

group by job_id,manager_id


*GROUP BY 子句注意问题:

1.GROUP BY 子句后面的列可以不再SELECT 语句中出现。

2.SELECT 子句中出现的 “非分组函数 ” 必须在GROUP BY子句中出现


HAVING子句。

错误示例:

select job_id,max(salary)

from employees

where max(salary)>=8888

group by job_id;

原因是查询语句的执行顺序是:from where group by select order by


正确示例:

select job_id,max(salary)

from employees

group by job_id

having max(salary)>8888;

总结SELECT语句执行过程:
– 通过FROM子句中找到需要查询的表;
– 通过WHERE子句进行非分组函数筛选判断;
– 通过GROUP BY子句完成分组操作;
– 通过HAVING子句完成组函数筛选判断;
– 通过SELECT子句选择显示的列或表达式及组函数;
– 通过ORDER BY子句进行排序操作。


eg:

select department_id,max(salary)

from employees

where department_id between 30 and 90

group by department_id

having max(salary)>8888

order by max(salary);










热心网友 时间:2022-05-04 00:46

假设你的表结构为tb_list(city,total),下面是SQL SERVER的写法:

select city,
cast((select sum(left(total,len(total)-1)) from tb_list where city like t1.city+'%') as varchar)+'次'
from tb_list t1
group by city

热心网友 时间:2022-05-04 02:04

select distinct(地名) from 表;

for(i=0; i<地名的个数; i++) {
tmpt = 地名[i];
select 次数 from 表 where 地名 like tmpt%;
for(j=0; j<次数个数; j++) {
tmptNum = tmptNum + 次数[i]去掉“次”字
}
arrTmpt.add(tmpt,tmptNum);
}

循环输出arrTmpt;

热心网友 时间:2022-05-04 03:39

不知是哪种数据库的,语法不太一样

说个思路

分组用函数计算字段和

热心网友 时间:2022-05-04 05:30

浙江省 与 浙江省杭州市
他们之间除了通过字面外
数据表里有他们之间的从属关系字段没有呢

热心网友 时间:2022-05-04 07:38

建议做个临时表把省市分开关联,这个表结构设计得不好

热心网友 时间:2022-05-04 10:03

select prov,(select sum(num) from tab where prov like aa.prov+'%') from tab aa group by prov

可以用这个试试看
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
粒上皇开口熟栗120g*5袋(共600g)-详细介绍 三皇王板栗介绍 品牌榜:2024年板栗十大品牌排行榜 投票结果公布【新】 为什么来大姨妈胸会胀 少儿学什么舞蹈 青年学什么舞蹈好 成年人学什么舞蹈 福州企业最低工资标准 2013年厦门的底薪是多少 生产要素的需求有哪些性质 宁德时代将获2000万美元违约金,该企业到底违反了什么约定? SpaceX星舰估值有多少? A轮融资金额2000万美元 什么水平 如何获取onetrust 有A,B,C,D 4张表,如何用数据库join语句设计表 数据库sql2005中join 数据库管理里的关系运算符——如(Restrict、Project、join)等等,他们的作用最好举例说明下, 谢谢! 数据库的JOIN,内部实现原理是怎么样的 数据库join到底是怎么个逻辑 用c#读取oracle数据库生成的零时列 C#如何通过后台设置点击按钮将数据库中指定行中的某一列字段改为1 假如我要将数据库中的一列数改为另一列数的前几个字,用语句怎么表示 java把oracle数据库里的表格(所有)显示到jsp页面上,对于动态的列名,如何生成get,set方法,求帮忙 如何可将数据库数据表列输出为表 C# linq Field 在数据库查出一列数据转换成int数组时报错? 如何创建自己的Linq provider c#,linq中如何只显示数据库表的某一列或者某几列。。 光脚丫学LINQ(024):如何通过修改DBML文件生成自定义代码 调试技巧:如何以数组的方式查看一个指针 超声波探伤仪调试技巧 数据库根据题目要求怎样快速分析出是否需要用到分组函数 关于数据库不是单组分组函数的问题,求人帮忙啊!! 数据库绑定列表框列,以及修改数据问题 oracle数据库列权限的授予问题 VB Combo连接数据库后显示表中某列的数据问题 C#怎样使 dataGridView1显示数据的时候,dataGridView1的列与数据库表里面的列一一对应? 数据库中某表ID(int)列连续增加的问题 在“桌面图标设置”对话框中可供选择启用的桌面图标,常见的有哪些。 电脑高手用电脑的技巧 电脑会产生很多系统垃圾文件,如何彻底清理掉,而且找不回来。 打字速度、网页操作、电脑的基本原理 电脑用系统盘恢复系统后没有完成结果重启只省下一个C盘分区,请问如何解决.产生这样的原因是因为什么? 电脑高手来!!!(高奖励) 成为电脑高手的第一步-只用键盘,不用鼠标 电脑顶级高手请进!!! 成为电脑高手具备的能力 我是一名初中生,我要掌握哪些电脑技巧才能成为电脑高手? 哪位电脑高手可以给我介绍关于电脑日常操作的基本知识的好书啊 !!最好有些好的操作技巧的啊!谢谢了。 到底应该如何才能成为一个计算机高手? 亚马逊是如何一步步把甲骨文逼上云的?