MySQL的子查询

博客介绍了在力扣数据库题中遇到的MySQL子查询ALL的使用,通过一个销售分析的例题展示了如何利用ALL子查询找出总销售额最高的销售者。ALL子查询与IN, ANY/SOME比较,表示所有值的比较条件。该博客解释了如何翻译和理解相关SQL语句,并记录了这一新学习的知识点。
摘要由CSDN通过智能技术生成

MySQL的子查询

最近刷力扣数据库题发现了一个以前没用过的子查询 ALL,特此写一篇小博客记录一下这个子查询的用法。

原题链接在此:销售分析 I

题目的要求是 编写一个 SQL 查询,查询总销售额最高的销售者,如果有并列的,就都展示出来。

查看题解发现了一个没见过的解法

select
    seller_id
from
    sales
group by seller_id
having
sum(price) >= all(select sum(price) from sales group by seller_id)

发现了新大陆——all

MySQL有以下子查询,对应的操作为:

  • IN:给出一个范围内的值,只要有就true
  • ALL: 与子查询返回的所有值比较为true 则返回true
  • ANY:与子查询返回的任何值比较为true 则返回true
  • SOME:是ANY的别称,很少用

结合这个含义,以上的sql可以翻译为查询所有的销售员的总销售额大于其他销售员总销额的销售员的ID,也就满足了题意。以前没用过这个子查询,特此记录一下。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值