永发信息网

oracle group by和having用法

答案:3  悬赏:50  手机版
解决时间 2021-02-27 16:13
这是我遇到的一道原题
Examine the description of the EMPLOYEES table:
EMP_ID NUMBER(4) NOT NULL LAST_
NAME VARCHAr2(30) NOT NULL
FIRST_NAME VARCHAr2(30)
DEPT_ID NUMBER(2)
JOB_CAT VARCHAr2(30)
SALARY NUMBER(8,2)
Which statement shows the department ID, minimum salary, and maximum salary paid in that
department, only if the minimum salary is less than 5000 and maximum salary is more than 15000?
然后给的解答是:SELECt dept_id, MIN(salary), MAX(salary)
FROM employees
GROUP BY dept_id
HAVINg MIN(salary) < 5000 AND MAX(salary) > 15000;
为什么这里只要group by dept_id就可以?
能通俗的为我解释一下么,group by 和having到底是怎么回事?
谢谢
最佳答案
MIN(), MAX()是聚合函数.
group by 后面是要跟着的 select 中所有不是聚合函数的字段。
ex1: select count(*) from emp; //只是查询总总数 emp这张表里一共有多少条记录 所以不用group by
ex2: select count(*) , deptno from emp group by deptno;
// 根据deptno 分组, 查到的数据就是 列出 不同部门 记录总数
select count(*) , deptno , comm from emp group by deptno , comm;
// 根据deptno 和 comm 分组 以此类推
group by 后面是要跟着的 select 中所有不是聚合函数的字段 否则会报错。

having 相当于where 与where的唯一区别是 当查询语句中有 聚合函数 的时候 就不能用where 了 只能用having
全部回答
group by 和having的关系就像select和where的关系。 这里,MIN(), MAX()是聚合函数,作用分别是求最大值和求最小值, 所以group by不需要
--1,查询hm有重复的记录 select hm,count(*) from a group by hm having count(*)>1 --2,查询hm和xm都有重复 select hm,xm count(*) from a group by hm,xm having count(*)>1
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
,怎么拉回QQ黑名单的好友
卫辉市永康生态农牧公司怎么去啊,有知道地址
最近把家里供奉菩萨摔碎了,然后就开始拉肚不
花花姑娘中谁是第一名
解答题列举我国原始农耕时代几项世界性的贡献
酷乐潮饮中南金街店在什么地方啊,我要过去处
金属压力容器规格Φ1200×8×4350什么意思?
【文化全球化】当今文化全球化的基本特征是()
庄河市国土资源监察大队在哪里啊,我有事要去
炉石卖号中介是什么
960÷60用简便法计算
正宗的朝鲜泡菜怎么做
春分的意思是什么
在县城开一个50平方左右的情侣装专卖店大慨需
宁波市鄞州区瞻岐镇方桥村村民委员会地址在什
推荐资讯
一个人喝多了,扶着树呕吐!打一动物!
手持条形磁铁 使它的一个磁极靠近闭合线圈的
尹记排骨米饭酱骨头怎么去啊,有知道地址的么
偷故宫里的文物,会被判死邢吗?
【蕴藉读音】下列加粗字的读音有误下列加粗字
鼻翼宽大,看起来像牛鼻子,怎么能改善一下,
诗歌可以分为哪几个层次?每部分讲了什么?
学术界有一种观点,认为量子论是由普朗克和爱
古代算命的叫什么
怎么让汽车大灯下面的小灯亮,开关在什么位置
开县美云副食经营部这个地址在什么地方,我要
自己在家怎样做减肥操
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?