1. 编写一个 sql 查询,找出每个部门工资前三高的员工
Employee 表包含所有员工信息,每个员工有其对应的 Id, salary 和 department Id 。
+----+-------+--------+--------------+
| Id | Name | Salary | DepartmentId |
+----+-------+--------+--------------+
| 1 | Joe | 70000 | 1 |
| 2 | Henry | 80000 | 2 |
| 3 | Sam | 60000 | 2 |
| 4 | Max | 90000 | 1 |
| 5 | Janet | 69000 | 1 |
| 6 | Randy | 85000 | 1 |
+----+-------+--------+--------------+
Department 表包含公司所有部门的信息。
+----+----------+
| Id | Name |
+----+----------+
| 1 | IT |
| 2 | Sales |
+----+----------+
编写一个 SQL 查询,找出每个部门工资前三高的员工。例如,根据上述给定的表格,查询结果应返回:
+------------+----------+--------+
| Department | Employee | Salary |
+------------+----------+--------+
| IT | Max | 90000 |
| IT | Randy | 85000 |
| IT | Joe | 70000 |
| Sales | Henry | 80000 |
| Sales | Sam | 60000 |
+------------+----------+--------+
Sql如下:
SELECT
d.Name Department,e1.Name Employee,e1.Salary Salary
FROM
Employee e1,
Employee e2 ,
Department d
WHERE
e1.DepartmentId = e2.DepartmentId
AND e1.Salary <= e2.Salary
and e1.DepartmentId=d.Id
group by e1.id
having count(DISTINCT e2.Salary)<=3
order by d.Name,e1.Salary desc
2. Mysql数据库中,要查询前三条记录,sql语句怎么写
SELECT * FROM 表 LIMIT 0, 3
LIMIT 接受一个或两个数字参数。
参数必须是一个整数常量。
如果给定两个参数,第一个参数指定第一个返回记录行的偏移量,
第二个参数指定返回记录行的最大数目。
初始记录行的偏移量是 0(而不是 1)
3. sql语句 每科成绩的前三名
可以用row_number函数来解决。
1、创建测试表,插入数据:
create table sc
(id int,
name varchar(20),
class varchar(20),
score int);
insert into sc values (1,'badkano','一年一班',100)
insert into sc values (2,'网络知道团长','一年一班',99)
insert into sc values (3,'小短','一年一班',95)
insert into sc values (4,'小小动','一年一班',97)
insert into sc values (5,'小智','一年一班',80)
insert into sc values (6,'吕布','一年二班',67)
insert into sc values (7,'赵云','一年二班',90)
insert into sc values (8,'典韦','一年二班',89)
insert into sc values (9,'关羽','一年二班',70)
insert into sc values (10,'马超','一年二班',98)
2、查询每个班级的前三名,可用语句:
select * from
(select row_number() over (partition by class order by score desc) 排名,* from sc) t
where 排名<=3 order by class asc,score desc
4. 根据商品表跟订单表来查询销量前三的产品。SQL语句
select top 3 b.proctname,sum(a.orderqty) orderqty from 订单表粗茄租纳洞 a left join 商岩兆品表 b on a.proctcode=b.proctcode group by b.proctname order by orderqty desc
5. 求一SQL语句:如何查询最大的前3个值
查询最大的前3个值的方法及编写方式
6. SQL server如何查询满足条件的前3数据
使用TOP子句。如:SELECT TOP 3 * FROM table_name
TOP 子句用于规定要返回的记录的数目。
SQL Server 的语法:
SELECT TOP number|percent column_name(s)FROM table_name
例:
7. SQL如何从多表中查询并显示查询结果的前3条记录
你问题描述不清,前3条,是根据什么来判断前3条?tab1还是tab2还是tab3的某一个或者多个字段?他们三个表之间的关系如何?
大概如此:
select a.*, b.col1, c.col1 from tab1 a, tab2 b, tab3 c
--where a.coln = b.coln and b.coln = c.coln 如果他们之间洞蠢没有关系的话自行加上
order by b.col1, c.col1
为tab2 , tab3的col1字纳纳段排序所得,你可自行改档伏。
8. 请教sql语言,如何查询前三名学生......
信息没给足,, 成绩表通过什么字段和st_info 以及 c_info关联呢??
以上信息不足,没法直接给你写完整的sql,只能给你个大致的语句供参考
select top 3 st_name,score from st_info,s_c_info..... where ......
order by score desc
9. SQL语句如何查询成绩的前三名带成绩重复的
select * from table where 成绩 in (select top 3 distinct 成绩 from table order by 成绩 desc) order by 成绩 desc
下面这个效率要高点
select * from table where 成绩 >= (select min(成绩) from(select top 3 distinct 成绩 from table)) order by 成绩 desc
10. 用sql语句,查询每个班级成绩排名前三名的学生姓名
1、首先在打开的SQLServer中,假设有两条数据中,包含有【张】,但是这个张一前一后,如下图所示。