Demo: SELECT USER_ID, USER_NAME, USER_SEX, MAX(USER_AGE), SUM(USER_MONEY) AS USER_MONEY USER_TEL, USER_EMAIL, USER_ADD, USER_STATUS, FROM USERS ORDER BY USER_NAME, USER_SEX, USER_STATUS; 类似这种,多个字段的GROUP BY该怎么写. 1.USER_TEL, USER_EMAIL, U
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句--select DML语句--insert,upate,delete等(关键
花点时间整理下sql基础,温故而知新.文章的demo来自oracle自带的dept,emp,salgrade三张表.解锁scott用户,使用scott用户登录就可以看到自带的表. #使用oracle用户登录linux [oracle@localhost ~]$ sqlplus / as sysdba; ...... SQL> alter user scott account unlock: 四大语句 DQL语句——select DML语句——insert,upate,delete等(关键字后带表
2018-07-10 08:29:55 思考应用场景 异常数据的测试 6.显示能挣得奖金的雇员的姓名.工资.奖金,并以工资和奖金降序排列.select ename,sal,commfrom empWHERE comm>0--两列都要descorder by sal desc,comm desc; 8. 显示姓名中两次出现字母L并且在30部门工作,或者其管理员编号是7782的雇员的姓名.SELECT ename FROM emp --模糊查询WHERE ename LIKE '%L%L%' AND
先上例了: select job as "JOB1", avg(sal) as "avg sal" from scott.emp group by "JOB" having avg(sal) > 1500 and "JOB1" = 'MANAGER' order by "avg sal" ; -- 执行报错,ORA-00904:"JOB1":标识符无效 select job as
一.多表查询 所有的连接分析,参考之前随笔:http://www.cnblogs.com/jiangbei/p/7420136.html 1.笛卡尔积 select last_name, department_name from employees, departments 产生无效的笛卡尔积可以通过where进行过滤 连接查询: 2.等值连接 select e.last_name, d.department_name from employees e, departments d where
笛卡尔集 l 笛卡尔集会在下面条件下产生: 省略连接条件 连接条件无效 所有表中的所有行互相连接 l 为了避免笛卡尔集, 可以在 WHERE 加入有效的连接条件. 自连接 select m.last_name,m.email,m.salary from employees e,employees m where e.employee_id = m.manager_id and m.last_name='Chen'; 自己和自己连接,将一张表分为两张表查询使用 非等值连接 SELECT e.l
--1 数据环境准备 scott 用户下面的emp,dept表 --2 要求 :求平均工资最高的部门编号,部门名称,部门平均工资 select d.deptno,d.dname,e.salfrom(select avg(sal) sal,deptnofrom emp egroup by deptnohaving avg(sal) = (select max(avg(sal)) from emp group by deptno))eleft join dept don e.deptno=d.dep
高级排序函数: [ ROW_NUMBER()| RANK() | DENSE_RANK ] OVER (partition by xx order by xx) 1.row_number() 连续且递增的数字 1 2 3 4 row_number() over (partition by xx order by xx ) --学生表中按照所在专业分组,同专业内按成绩倒序排序,成绩相同则按学号正序排序,并给予组内等级select row_number() over(partition b
分组函数也叫聚合函数.如果在查询只想要查分组函数,那么跟平时的查询语句并无不同: SQL ,,,,) ; SUM(T.PRIZENUM) AVG(T.PRIZENUM) --------------- --------------- 4549.7777777777 但往往不会这么简单,我们会一次查询多个列,包括普通的.没有调用分组函数的列,那么我们要注意以下几点: 1.所有未包含在组函数中的列都应该包含在 GROUP BY 子句中: 2.包含在 GROUP BY 子句中的列不必包含在SELECT