SQL题目备忘

  1. 列出每个部门年龄最大的员工姓名,部门名等信息
  2. 列出每个部门的员工总收入
  3. 列出员工总收入大于8000的部门号,部门名称信息
  4. 有哪个部门还有员工未入职
  5. 按部门号大小,入职时间由早到晚排序员工信息表

1.sqlite> SELECT e.e_name, MAX(e.e_age), d.name FROM employee e

...> INNER JOIN dept d ON e.e_dept_id=d.id
       ...> GROUP BY e.e_dept_id;

2.sqlite> SELECT SUM(e.e_salary), d.name FROM employee e

...> INNER JOIN dept d ON e.e_dept_id=d.id
       ...> GROUP BY e.e_dept_id;

3.sqlite> SELECT e.e_dept_id, d.name FROM employee e

...> INNER JOIN dept d ON e.e_dept_id=d.id
       ...> GROUP BY e.e_dept_id
       ...> HAVING SUM(e.e_salary)>8000;

4.sqlite> SELECT d.id, d.name FROM dept d

       ...> WHERE d.id NOT IN
       ...> (SELECT e.e_dept_id FROM employee e);

5.sqlite> SELECT * FROM employee e
        ...> ORDER BY e.e_dept_id ASC, e_time ASC;



  

  1. 查询每个部门及部门平均工资并按薪资由高到低排序
  2. 查询部门及其最高薪资员工ID

1.sqlite> SELECT d.dept, AVG(s.salary) FROM dept d

       ...> INNER JOIN employee e ON d.name=e.name
       ...> INNER JOIN salary s ON e.id=s.id
       ...> GROUP BY d.dept
       ...> ORDER BY AVG(s.salary) DESC;

2.sqlite> SELECT d.dept, s.id, e.name, MAX(s.salary) FROM dept d

       ...> INNER JOIN employee e ON d.name=e.name
       ...> INNER JOIN salary s ON e.id=s.id
       ...> GROUP BY d.dept;

时间: 2024-10-25 05:27:55

SQL题目备忘的相关文章

SQL注入备忘单

Find and exploit SQL Injections with free Netsparker SQL Injection Scanner SQL Injection Cheat Sheet, Document Version 1.4 About SQL Injection Cheat Sheet Currently only for MySQL and Microsoft SQL Server, some ORACLE and some PostgreSQL. Most of sam

sql语句备忘:非int类型行转列

如上图,result是varchar类型,需要行转列,百度到的都是对int类型的操作,折腾了很久,才整出来,在这里备个忘,不过据说性能方面堪忧,所以在这里也求看到大神指点指点,哪里还可以改进的,谢谢. 1 --不适用于有类型为text.ntext等不能执行distinct操作的字段 2 SELECT DISTINCT a.code, 3 (SELECT result FROM test b WHERE a.code=b.code AND b.type=1)AS'初审', 4 (SELECT re

SQL学习备忘

1.按照拼音首字母的正序或倒序排序 1 SELECT 2 CREATOR_REALNAME 3 FROM 4 tableName 5 ORDER BY NLSSORT(CREATOR_REALNAME, 'NLS_SORT = SCHINESE_PINYIN_M') desc 拼音排序 参考:nls_sort和nlssort 排序功能介绍

sql语句备忘

一:根据用户的得分查询其排名 答:先查出分数比当前用户高的有几个,在查出积分跟当前用户相等,时间早于这个用户的有几个,相加就是排名 或 set @i = 0;SELECT *, (@i := @i + 1) AS ranking from user_score order by score desc, create_time asc; 二:MySQL执行查询,增加自定义列从1开始增长到最大记录数模拟自增ID SET @mycnt = 0; SELECT (@mycnt := @mycnt + 1

SQL Server -- 自定义函数(学习总结,备忘)

SQL Server自定义函数,以前只在书上看过,没有动手去敲一敲,今天刚好接触到,看了几篇博文学习了下.做好备忘很重要!! (@[email protected])Y Learn from:http://www.cnblogs.com/lideng/archive/2013/04/15/3022418.html 自定义函数分为:标量值函数或表值函数两种. 标量值函数:如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数. 表值函数:如果 RETURNS 子句指定 TABLE,则函

Postgresql,常用sql备忘

1.查看所有表的名称 Postgresql,greeplum,如果数据库在几千里以外,数据量巨大,网速不好,使用pgadmin客户端,那么你大部分时间都要浪费在等在中... 使用pgadmin的query是个不错的选择,但是,怎么才能知道表名呢,这丫真没mysql好用—— SELECT tablename FROM pg_tables where tablename not like 'gp%' and tablename not like 'gp%' and tablename not lik

工作中常用SQL 查询语句备忘

--当A列大于B列时选择A列否则选择B列,当B列大于C列时选择B列否则选择C列.select (case when a>b then a else b end ), (case when b>c then b esle c end) from table_name --求和查询 create table #tmp(rq varchar(10), shengfu nchar(1)) insert into #tmp values('2005-05-09','胜') insert into #tm

oracle下 启动subversion命令 及 oracle相关服务启动备忘

linux shell下  svnserve - d -r + 目录   例如:svnserve -d -r /svn 启动 svn服务. 访问svn://192.168.0.120/kjcg 测试. 启动oracle: 一.如何启动数据库实例 1.进入到sqlplus启动实例 [[email protected] ~]$ su - oracle --“切换到oracle用户” 2. Password: [[email protected] ~]$ lsnrctl start  --“打开监听”

mysql 常用命令(备忘)

1:使用SHOW语句找出在服务器上当前存在什么数据库:mysql> SHOW DATABASES; 2:2.创建一个数据库MYSQLDATAmysql> CREATE DATABASE MYSQLDATA;3:选择你所创建的数据库 mysql> USE MYSQLDATA; (按回车键出现Database changed 时说明操作成功!) 4:查看现在的数据库中存在什么表mysql> SHOW TABLES;5:创建一个数据库表mysql> CREATE TABLE MYT