阿里巴巴数据分析面试题
表格是上面张,输出了每个prod_id的前两个最小的quantity,下面这段代码看不懂,尤其是where里面<=2那一段,求大神解答
mysql> select prod_id,quantity
-> from orderitems
-> where
-> ( select count(*) from orderitems a
-> where a.prod_id=orderitems.prod_id
-> and a.quantity<=orderitems.quantity)<=2
-> order by prod_id,quantity;
+---------+----------+
+---------+----------+
| prod_id | quantity |
+---------+----------+
| BNBG01 | 10 |
| BNBG01 | 100 |
| BNBG02 | 10 |
| BNBG02 | 100 |
| BNBG03 | 10 |
| BNBG03 | 100 |
| BR01 | 20 |
| BR01 | 100 |
| BR02 | 10 |
| BR03 | 5 |
| BR03 | 10 |
| RGAN01 | 5 |
| RGAN01 | 50 |
+---------+----------+
表格是上面张,输出了每个prod_id的前两个最小的quantity,下面这段代码看不懂,尤其是where里面<=2那一段,求大神解答
mysql> select prod_id,quantity
-> from orderitems
-> where
-> ( select count(*) from orderitems a
-> where a.prod_id=orderitems.prod_id
-> and a.quantity<=orderitems.quantity)<=2
-> order by prod_id,quantity;
+---------+----------+
+---------+----------+
| prod_id | quantity |
+---------+----------+
| BNBG01 | 10 |
| BNBG01 | 100 |
| BNBG02 | 10 |
| BNBG02 | 100 |
| BNBG03 | 10 |
| BNBG03 | 100 |
| BR01 | 20 |
| BR01 | 100 |
| BR02 | 10 |
| BR03 | 5 |
| BR03 | 10 |
| RGAN01 | 5 |
| RGAN01 | 50 |
+---------+----------+
全部评论
关联子查询
where里面的统计出了小于另外一张表的quantity的个数
最后<=2就是筛出了2个最小的出来
相关推荐
06-13 10:15
门头沟学院 Java 点赞 评论 收藏
分享