1965.丢失信息的雇员
写出一个查询语句,找到所有 丢失信息 的雇员id。当满足下面一个条件时,就被认为是雇员的信息丢失:
·雇员的姓名丢失了,或者
·雇员的薪水信息 丢失了
返回这些雇员的id employee_id , 从小到大排序 。
考点
1.union与union all
UNION | UNION ALL | |
---|---|---|
重复结果 | 去重 | 保留 |
排序处理 | 排序 | 只是合并 |
效率处理 | 低 | 高 |
2.having
🔨在 SQL 中增加 HAVING 子句原因是,WHERE 关键字无法与聚合函数一起使用。
HAVING 子句可以让我们筛选分组后的各组数据。
👉where 和having之后都是筛选条件,但是有区别的:
·where在group by前, having在group by 后
·聚合函数(avg、sum、max、min、count),不能作为条件放在where之后,但可以放在having之后
3.count()
🔨是一个聚合函数,它返回符合条件行数。
4.as t
这段的意义在于🔨起别名,每个派生表都需要有自己的别名,不起别名执行不了!
5.group by
字面意思:通过xxx分组
思路与代码
思路很简单:雇员的姓名丢失了或者雇员的薪水信息丢失,都会导致employee_id 在 employees 和salaries 的并集表里面仅出现一次.
1 | select |
1795. 每个产品在不同商店的价格
请你重构 Products 表,查询每个产品在不同商店的价格,使得输出的格式变为(product_id, store, price) 。如果这一产品在商店里没有出售,则不输出这一行。
输出结果表中的 顺序不作要求 。
1 | 输入: |
考点
🧐行列转换
⚙
代码
1 | SELECT product_id, 'store1' store, store1 price |