`
wawa129
  • 浏览: 321950 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

一个包含group by,having,where的sql

 
阅读更多
请思考:如何显示高于自己部门平均工资的员工的信息
思路: 1. 查出各个部门的平均工资和部门号
SELECT deptno, AVG(sal) mysal FROM emp GROUP by deptno;
2. 把上面的查询结果看做是一张子表
SELECT e.ename, e.deptno, e.sal, ds.mysal FROM emp e, (SELECT deptno, AVG(sal) mysal FROM emp GROUP by deptno) ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal;

小总结:
group by用于对查询的结果分组统计.
having子句用于限制分组显示结果。

在这里需要说明的当在from子句中使用子查询时,该子查询会被作为一个视图来对待,因此叫做内嵌视图,当在from子句中使用子查询时,必须给子查询指定别名。 注意:别名不能用as,如:SELECT e.ename, e.deptno, e.sal, ds.mysal FROM emp e, (SELECT deptno, AVG(sal) mysal FROM emp GROUP by deptno) as ds WHERE e.deptno = ds.deptno AND e.sal > ds.mysal; 在ds前不能加as,否则会报错 (给表取别名的时候,不能加as;但是给列取别名,是可以加as的)
分享到:
评论

相关推荐

    sql中的 where 、group by 和 having 用法解析

    主要介绍了sql中的 where 、group by 和 having 用法解析,需要的朋友可以参考下

    当数据库复杂查询执行顺序与编写顺序原理及sql案例:同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序

    当同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序时的用法

    SQL 语法 SQL 总结 SQL教程

    SQL 基础 SQL 首页 SQL 简介 SQL 语法 ...SQL Group By SQL Having SQL ucase() SQL lcase() SQL mid() SQL len() SQL round() SQL now() SQL format() SQL 总结 SQL 快速索引 SQL 总结

    数据库笔试题之查询语句where,group by,having,order by执行与编写顺序详解

    数据库复杂查询执行顺序与编写顺序原理及sql案例:同时出现了where_group_by_having_order_by的时候_执行顺序和编写顺序

    Sequelize中用group by进行分组聚合查询

    分组查询后,查询结果为一个或多个列分组后的结果集。 GROUP BY语法 SELECT 列名, 聚合函数(列名) FROM 表名 WHERE 列名 operator value GROUP BY 列名 [HAVING 条件表达式] [WITH ROLLUP] 在以上语句中: 聚合函数...

    MySQL根据某一个或者多个字段查找重复数据的sql语句

    select * from xi a where (a.username) in (select username from xi group by username having count(*) > 1) 2、查询出所有数据进行分组之后,和重复数据的重复次数的查询数据,先列下: select count...

    sql where 和 having的区别

    1.类型: “Where”是一个约束声明,在查询数据库的结果返回之前对数据库中的查询条件进行约束,即在...如下面这个sql语句:select sum(score) from student group by student.sex where sum(student.age)>100; havi

    LINQ to SQL手册

    LINQ to SQL语句(6)之Group By/Having LINQ to SQL语句(7)之Exists/In/Any/All/Contains LINQ to SQL语句(8)之Concat/Union/Intersect/Except LINQ to SQL语句(9)之Top/Bottom和Paging和SqlMethods LINQ to SQL语句...

    SQL中Having与Where的区别

    何时使用having where,请遵照下面的说明:WHERE语句在GROUP BY语句之前;SQL会在分组之前计算WHERE语句。HAVING语句在GROUP BY语句之后;SQL会在分组之后计算HAVING语句。

    浅谈sql语句中GROUP BY 和 HAVING的使用方法

    在介绍GROUP BY 和 HAVING 子句前,我们必需先讲讲sql语言中一种特殊的函数:聚合函数, 例如SUM, COUNT, MAX, AVG等。这些函数和其它函数的根本区别就是它们一般作用在多条记录上。 SELECT SUM(population) FROM ...

    数据库SQL中having和where的用法区别

    “Where” 是一个约束声明,使用Where来约束来之数据库的数据,Where是在结果返回之前起作用的,且Where中不能使用聚合函数。 “Having”是一个过滤声明,是在查询返回结果集以后对查询结果进行的过滤操作,在Having...

    SQL语法手册SQL语法手册

    从数据库中选取资料列,并允许从一或多个资料表中,选取一或多个资料列或资料行。SELECT 陈述式的完整语法相当复杂,但主要子句可摘要为: SELECT select_list [ INTO new_table ] FROM table_source [ WHERE ...

    Sql开窗函数资源-Dark-Horse-Programmer.zip

    where 2group by 3having 4 select 5 基本查询开窗查询 order by 6 limit 7 其中包括hadoop,hive,hdfs,shell,linux基础,开窗函数学习资料和讲解视频 川在川上曰:靠谱! SaL 的运行顺序 from 1 where 2group by 3...

    复习笔记SQL34句

    SQL语句(11) Group By 4 SQL语句(12) HAVING 4 SQL语句(13) ALIAS 4 SQL语句(14) 连接 4 SQL语句(15) 外部连接 5 SQL语句(16) Subquery 6 SQL语句(17) UNION 6 SQL语句(18) UNION ALL 6 SQL语句(19) INTERSECT 7 SQL...

    SQL语句教程.pdf

    当您读完了这个网站的所有教材后,您将对 SQL 的语法会有一个 大致上的了解。另外,您将能够正确地运用 SQL 来由数据库中获取信息。笔者本身的经验 是,虽然要对 SQL 有很透彻的了解并不是一朝一夕可以完成的,可是...

    group by,having,order by的用法详解

    一,如果一个查询中使用了分组函数,任何不在分组函数中的列或表达式必须要在group by中,否则出错。 第一个查询中,deptno没有出现在group by中,也没有出现在分组函数中,因此出错。将deptno改成job就可以了。该条...

    详解partition by和group by对比

    from > where > group by > having > order by 而partition by应用在以上关键字之后,实际上就是在执行完select之后,在所得结果集之上进行partition。 3.partition by相比较于group by,能够在保留全部数据的基础上...

    SQLSERVER基础题库

    公司培训专用SQL语句,SQLserver基础考核。含有基础数据插入SQL。 问题: 1、查询“001”课程比“002”课程成绩高的所有学生的学号; select a.S# from (select s#,score ... group by S# having avg(score) >60;

Global site tag (gtag.js) - Google Analytics