力扣sql题

目录

1 找出合作过至少三次的演员和导演的 id 对(actor_id, director_id)

2 获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。

3 查询每一个项目中员工的 平均 工作年限,精确到小数点后两位。

4 报告2019年春季才售出的产品。即仅在2019-01-01至2019-03-31(含)之间出售的商品。

5查询每位玩家 第一次登录平台的日期

6统计截至 2019-07-27(包含2019-07-27),近 30 天的每日活跃用户数(当天只要有一条活动记录,即为活跃用户)

7请查询出所有浏览过自己文章的作者,结果按 id 升序排列

8 case 行转列   使得 每个月 都有一个部门 id 列和一个收入列

9找出每次的 query_name 、 quality 和 poor_query_percentage。

10查找每种产品的平均售价

1 找出合作过至少三次的演员和导演的 id 对(actor_id, director_id)

示例 :

输入:
ActorDirector 表:
+-------------+-------------+-------------+
| actor_id    | director_id | timestamp   |
+-------------+-------------+-------------+
| 1           | 1           | 0           |
| 1           | 1           | 1           |
| 1           | 1           | 2           |
| 1           | 2           | 3           |
| 1           | 2           | 4           |
| 2           | 1           | 5           |
| 2           | 1           | 6           |
+-------------+-------------+-------------+
输出:
+-------------+-------------+
| actor_id    | director_id |
+-------------+-------------+
| 1           | 1           |
+-------------+-------------+
解释:
唯一的 id 对是 (1, 1),他们恰好合作了 3 次。

sql:
select  actor_id,director_id 
from ActorDirector
group by actor_id,director_id
having count(*)>=3

2 获取 Sales 表中所有 sale_id 对应的 product_name 以及该产品的所有 year 和 price 。

示例 1:

输入:Sales表:

+---------+------------+------+----------+-------+
| sale_id | product_id | year | quantity | price |
+---------+------------+------+----------+-------+ 
| 1       | 100        | 2008 | 10       | 5000  |
| 2       | 100        | 2009 | 12       | 5000  |
| 7       | 200        | 2011 | 15       | 9000  |
+---------+------------+------+----------+-------+

Product表:

+------------+--------------+
| product_id | product_name |
+------------+--------------+
| 100        | Nokia        |
| 200        | Apple        |
| 300        | Samsung      |
+------------+--------------+

输出:

+--------------+-------+-------+
| product_name | year  | price |
+--------------+-------+-------+
| Nokia        | 2008  | 5000  |
| Nokia        | 2009  | 5000  |
| Apple        | 2011  | 9000  |
+--------------+-------+-------+

sql:

select product_name,year,price
from Sales
left join Product 
on Sales.product_id=Product.product_id

3 查询每一个项目中员工的 平均 工作年限,精确到小数点后两位

查询结果的格式如下:

Project 表:
+-------------+-------------+
| project_id  | employee_id |
+-------------+-------------+
| 1           | 1           |
| 1           | 2           |
| 1           | 3           |
| 2           | 1           |
| 2           | 4           |
+-------------+-------------+

Employee 表:
+-------------+--------+------------------+
| employee_id | name   | experience_years |
+-------------+--------+------------------+
| 1           | Khaled | 3                |
| 2           | Ali    | 2                |
| 3           | John   | 1                |
| 4           | Doe    | 2                |
+-------------+--------+------------------+

Result 表:
+-------------+---------------+
| project_id  | average_years |
+-------------+---------------+
| 1           | 2.00          |
| 2           | 2.50          |
+-------------+---------------+
第一个项目中,员工的平均工作年限是 (3 + 2 + 1) / 3 = 2.00;第二个项目中,员工的平均工作年限是 (3 + 2) / 2 = 2.50

sql  1:

select project_id,round(avg(experience_years),2) average_years  
from Employee left join Project on Employee.employee_id = Project.employee_id
where Employee.employee_id and Project.project_id is not null
group by Project.project_id;

  sql  2:

SELECT project_id,round(avg(experience_years),2) average_years
FROM Project p 
JOIN Employee e
ON p.employee_id = e.employee_id
GROUP 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值