首页 > 其他分享 >1075. 项目员工 I

1075. 项目员工 I

时间:2023-05-08 14:33:06浏览次数:37  
标签:项目 1075 员工 project Employee employee years id

【题目】

项目表 Project:

+-------------+---------+
| Column Name | Type    |
+-------------+---------+
| project_id  | int     |
| employee_id | int     |
+-------------+---------+
主键为 (project_id, employee_id)。
employee_id 是员工表 Employee 表的外键。

员工表 Employee:

+------------------+---------+
| Column Name      | Type    |
+------------------+---------+
| employee_id      | int     |
| name             | varchar |
| experience_years | int     |
+------------------+---------+
主键是 employee_id。

 

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

查询结果的格式如下:

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

来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/project-employees-i

【思路】

先左连接,然后按project_id进行分组,然后累加后除

【代码】

SELECT project_id,ROUND(SUM(experience_years)/COUNT(project_id),2) as average_years 
FROM Project
Left Join Employee On Project.employee_id = Employee.employee_id
GROUP BY project_id;

 

标签:项目,1075,员工,project,Employee,employee,years,id
From: https://www.cnblogs.com/End1ess/p/17381640.html

相关文章

  • docker 打包 springboot 项目快速入门
    docker打包springboot项目快速入门文末源码@[toc]1.构建Sringboot工程新建项目创建接口packagecom.wangshiyu.javapub.demo.springbootdocker.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframework.web.bind.annotation.......
  • docker 打包 springboot 项目快速入门
    >收藏不点赞,表示很遗憾docker打包springboot项目快速入门文末源码@[toc]1.构建Sringboot工程新建项目创建接口packagecom.wangshiyu.javapub.demo.springbootdocker.controller;importorg.springframework.web.bind.annotation.RequestMapping;importorg.springframewor......
  • springboot项目启动后卡死 pom 依赖问题
    最近接手一个新项目springcolud的子系统 pom里面有个parent标签因为没有父项目的pom文件就把pom自己改了改 编译不报错就行 神奇的事情发生了  项目跑起来卡死了     就是启动后tomcat是启动的 但是具体的代码没有跑起来看了下jvm后台 eden区不断g......
  • 《java接力》springboot篇——新建项目
    新建项目参考链接:https://www.cnblogs.com/wuyizuokan/p/11117294.html参考链接:https://segmentfault.com/q/1010000007938655新建项目无法链接spring官网法一:可以使用https://start.springboot.io/法二:使用自定义网址,把那个网址的https后面的s去掉,使用http开头就可以访......
  • AspNetCoreRateLimit应用于MVC项目求助
    AspNetCoreRateLimit应用于MVC项目求助前言之前发过一篇文章:.NETCoreWebApi接口ip限流实践-妙妙屋(zy)-博客园(cnblogs.com)然后应用在前后端分离项目这个组件是非常好用的。但应用于不分离的项目,比如我的个人博客就有点麻烦。就是我的需求是评论接口限流,然后触发限流后......
  • 在linux上使用Qt开发动态库项目,怎么只生成一个so文件
     背景:在linux系统上,我们使用Qt开发动态库项目时,会默认生成四个文件:x.so 、x.so.1、x.so.1.0、x.so.1.0.0四个文件,只有一个真实的so库,剩下的三个都是链接文件。我们交付的时候,不可能发一堆文件出去,所以我们需要对Qt项目进行设置,保证输入的只有一个so文件......
  • Java练手项目(尚硅谷),后续2
    菜鸟小白,如有大佬发现错误欢迎指正,洗耳恭听。今天在练习Java尚硅谷的项目的时候,发现自己对break语句,还是不太了解,就把那个项目里面的一段循环代码拿了出来,单独放在一个小项目里,去看看,到底执行了哪句,执行顺序。发现,这样来理解比较好一些。代码如下:importjava.util.Scanner;......
  • boot-admin开源项目中有关后端参数校验的最佳实践
    我们在项目开发中,经常会对一些参数进行校验,比如非空校验、长度校验,以及定制的业务校验规则等,如果使用if/else语句来对请求的每一个参数一一校验,就会出现大量与业务逻辑无关的代码,繁重不堪且繁琐的校验,会大大降低我们的工作效率,而且准确性也无法保证。为保证数据的正确性、完整性,前......
  • springmvc知识梳理 一篇就能让你的项目按照springmvc框架跑起来
    springmvc目录1.创建基本框架步骤2.@RequestMapping()2.1value属性2.1.1路径支持ant风格2.1.2restful风格2.2method属性2.2.1form表单问题:2.2.2get和post相关问题(涉及面试题):2.3param属性书写格式:thymeleaf语法:2.4headers属性3.获取请求参数......
  • 使用IDEA2023创建springMVC项目,web项目
    1.使用idea2022创建web项目 2.新建模块 3.编写文件名,记住如果想单独一个项目,不想被包括在其他项目里面就取消位置后面的地址,它有可能是上一个项目的主文件 4.创建完主要项目以后要添加web模块,先选中需要添加web项目的模块,再店家上方+号,选择 web模块 3.修改部......