MySQL练手 --- 1789. 员工的直属部门

题目链接:1789. 员工的直属部门

这道题虽然是个简单题,但是"坑"倒是不少,所以记录一下

思路:

题目要干

一个员工可以属于多个部门。当一个员工加入超过一个部门的时候,他需要决定哪个部门是他的直属部门。请注意,当员工只加入一个部门的时候,那这个部门将默认为他的直属部门,虽然表记录的值为’N’.

要求:查出员工所属的直属部门

由题可知,两个过滤条件,一个是直属部门标识为Y(primary_flag = 'Y'),另一个是该员工只加入了一个部门(COUNT(employee_id) = 1)。又因为一个员工可以属于多个部门,所以需要分组处理(GROUP BY employee_id

解题过程:

看起来挺容易实现的,开始编写代码

SELECT employee_id, department_id
FROM Employee
GROUP BY employee_id
HAVING primary_flag = 'Y' OR COUNT(employee_id) = 1;

上面的代码是不是大家一下子就可以想到的?
看起来"一点儿毛病也没有",起码逻辑上没有问题
来来来,运行一下

在这里插入图片描述

咦 (⊙o⊙)? 咋还报错了?说 HAVING 子句中不认识primary_flag

心想:卧槽,不对啊,这不有FROM Employee,为啥还报错,有毛病吧。

嘿,还真不能赖人家,这是因为,HAVING子句中只允许是聚合函数(又称为组函数)或者是GROUP BY后面的字段

还有一个问题:SELECT employee_id, department_id 这个也不对,虽然没有报错,但是不符合规定,使用GROUP BY后,SELECT中出现的非组函数的字段必须声明在GROUP BY中。反而,在GROUP BY中声明的字段可以不出现在SELECT中。

将一个员工可以属于多个部门,所以需要分组处理(GROUP BY employee_id )使用子查询,作为另一个过滤条件。

SELECT employee_id
FROM Employee
GROUP BY employee_id
HAVING COUNT(employee_id) = 1;

在这里插入图片描述

Code

SELECT employee_id, department_id
FROM Employee
WHERE primary_flag = 'Y' OR employee_id IN (SELECT employee_idFROM EmployeeGROUP BY employee_idHAVING COUNT(employee_id) = 1
);

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/49230.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

木材货场现状与新时代商贸物流关系分析

在全球经济一体化的浪潮下,商贸物流行业正经历着前所未有的变革。木材,作为传统而重要的原材料,在建筑、家具、包装等多个领域发挥着关键作用。然而,传统木材货场在面对新时代商贸物流的新要求时,其现状显得尤为滞后&a…

力扣刷题-图论-岛屿类问题-集合实现(c++实现)

我的老师:力扣链接这道题题解中最高赞的回答nettee,从这篇题解中我学到了dfs框架以及解决思路,并独立完成了该题解里的几道习题本人刷题的习惯是学会一个板子,然后之后的同类题都机械的用这个板子去做,最好不做创新&am…

Mybatis(三) 查询不同数据封装的方式

实体类&#xff1a; 数据库&#xff1a; 1、查询一个实体类对象 /** * 根据用户id查询用户信息* param id * return */User getUserById(Param("id") int id);<select id"getUserById" resultType"User">select * from t_user where id …

创维汽车滁州永通体验中心开业仪式暨超充车型区域上市会圆满成功

2024年7月20日&#xff0c;创维汽车滁州永通体验中心盛大开业&#xff0c;当日&#xff0c;创维汽车市场部经理周世鹏、安徽大区总监王大明等领导参加本次开业盛典&#xff0c;共同见证创维汽车滁州永通体验中心成功落地。 2021年&#xff0c;新能源乘用车高速发展&#xff0c;…

MATLAB基础:数组及其数学运算

今天我们继续学习MATLAB中的数组 我们在学习MATLAB时了解到&#xff0c;MATLAB作者秉持着“万物皆可矩阵”的思想企图将数学甚至世间万物使用矩阵表示出来&#xff0c;而矩阵的处理&#xff0c;自然成了这门语言的重中之重。 数组基础 在MATLAB中&#xff0c;数组是一个基本…

Beam Search 原理详解

文章目录 1. 前言2. 原理3. 举例4. 参考 1. 前言 Beam Search 是一种启发式图搜索算法&#xff0c;用于在图或树的搜索过程中寻找最有可能的路径。它常用于自然语言处理&#xff08;NLP&#xff09;中的序列生成任务&#xff0c;如机器翻译、语音识别和文本生成等。与穷举搜索…

网络三剑客之awk

目录 一、awk理论简述 1.1 awk概述 1.2 工作原理 1.3 工作流程 1.3.1 运行模式 1.3.2 执行流程 1.3.3 awk程序结构 1.4 基本语法 1.4.1 命令格式 二、awk操作显示 2.1 基础显示 注&#xff1a;扩展生产案例&#xff08;网卡ip、流量&#xff09; 2.2 BEGIN END 运…

AI大模型写的高考作文,你觉得怎么样?

下方为2024年高考新课标I卷语文作文题目&#xff0c;接下来将使用Chatgpt、文心一言、讯飞星火等众多AI大模型来写这篇高考作文 Chatgpt 标题&#xff1a;问题的演变与思考 随着互联网和人工智能技术的飞速发展&#xff0c;我们获得信息的方式和速度发生了前所未有的变化。曾经…

Spring-Aop源码解析(二)

书接上文&#xff0c;上文说到&#xff0c;specificInterceptors 不为空则执行createProxy方法创建代理对象&#xff0c;即下图的createProxy方法开始执行&#xff0c;生成代理对象&#xff0c;生成代理对象有两种方式&#xff0c;JDK和CGLIB。 createAopProxy就是决定使用哪…

减轻幻觉新SOTA,7B模型自迭代训练效果超越GPT-4,上海AI lab发布

LLMs在回答各种复杂问题时&#xff0c;有时会“胡言乱语”&#xff0c;产生所谓的幻觉。解决这一问题的初始步骤就是创建高质量幻觉数据集训练模型以帮助检测、缓解幻觉。 但现有的幻觉标注数据集&#xff0c;因为领域窄、数量少&#xff0c;加上制作成本高、标注人员水平不一…

介绍一下TCP/IP 模型和 OSI 模型的区别

OSI 模型是由国际标准化组织制定的一个用于计算机或通信系统间互联的标准体系&#xff0c;一共有七层&#xff0c;由上而下分别为应用层&#xff0c;表示层&#xff0c;会话层&#xff0c;传输层&#xff0c;网络层&#xff0c;数据链路层和物理层&#xff0c;虽然 OSI 模型理论…

微信公众平台无限回调系统 /user/ajax.php SQL注入漏洞复现

0x01 产品简介 微信公众平台无限回调系统是一种旨在提升企业客户服务体验和运营效率的工具。该系统通过一系列智能化和自动化的功能,帮助企业与用户之间建立更加便捷、高效的沟通桥梁。 0x02 漏洞概述 微信公众平台无限回调系统 /user/ajax.php 接口存在SQL注入漏洞,未经身…

k8s多集群管理工具kubecm

文章目录 一、概述二、安装1、官网链接2、各平台安装2.1、MacOS2.2、Linux2.3、Windows 三、实例1、验证2、配置kubecm自动补全&#xff08;选做&#xff09;2.1、Bash2.2、Zsh2.3、fish2.4、PowerShell 3、创建存放kubeconfig文件的目录4、添加到 $HOME/.kube/config4.1、kube…

win10系统通过docker部署pytorch的cpu环境_中文地址命名实体识别案例

命名实体有关文章参考这篇文章 中文地址命名实体识别训练和预测 其它docker部署类似文章参考 分布式爬虫管理平台gerapy通过docker部署scrapyd来添加主机(四) 背景 通过win10系统通过docker来部署,可以方便的在其它没有python环境的电脑上部署python项目,下面所有操作基…

【网络安全】通过导入功能将权限提升至管理员

未经许可&#xff0c;不得转载。 文章目录 正文 正文 一款学习型 Web 应用&#xff0c;具有多个角色&#xff0c;其中两个相关角色是admin和student。 管理员拥有完全访问权限&#xff0c;而学生拥有有限的访问权限。管理面板中的一项功能允许管理员通过 CSV 方便地导入用户&…

EXCEL自动公式计算始终为0

如果你的数据单元格的左上角存在绿色的三角小箭头&#xff0c;那么就会造成这种问题&#xff1a; 你的数字是以文本形式存入的单元格 解决办法&#xff1a; 选中数据列&#xff0c;数据->分列 直接选择完成 此时就可以进行公式计算了

嵌入式人工智能(26-基于树莓派4B的声音传感器)

发声体产生的振动在空气或其他物质中的传播叫作声波。声波可以借助各种介质向四面八方传播,根据频率的不同&#xff0c;可分为普通的声波(人耳能听到的&#xff0c;频率为20~20000Hz)和超声波(人耳不能听到,频率大于20000Hz)。声波传感器可以检测环境中的声波信号&#xff0c;根…

Linux进程——环境变量之二

文章目录 环境变量查看环境变量获取环境变量main()的第三个参数本地变量全局环境变量内建命令与常规命令 环境变量 查看环境变量 在上一篇文章中我们只说了查看某个环境变量的值&#xff0c;那么如何查看所有的环境变量呢 使用指令env即可 例如 这里我们也不需要全部记住&a…

WPF MVVM框架:CommunityToolkit.Mvvm包使用介绍

最近在需要使用MVVM框架的时候才发现MvvmLight作者宣布停止更新了&#xff0c;有点可惜。 原作者推荐使用CommunityToolkit.Mvvm包&#xff0c;所以这里做一个CommunityToolkit.Mvvm包使用的全面的总结。 开发环境&#xff1a; Visual Studio 2019Windows 10 1903CommunityTo…

海山数据库(He3DB)性能优化方案解析

前端优化是一个永恒的话题&#xff0c;每个前端开发者都希望自己的页面能够快速加载&#xff0c;给用户良好的体验。但往往事与愿违。因此&#xff0c;本文从编码优化、构建优化、部署优化三方面入手进行web页面性能优化。 1. 编码优化 1.1. Css优化 1.1.1. 合理使用css选择…