阿里巴巴面试题,数据分析


    表格是上面张,输出了每个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 |
+---------+----------+

#实习##笔试题目##MySQL##数据库工程师#
全部评论
这题用row_number() over (partition by proid_id order by quantity)做更容易,你给出的这种解法leetcode喜欢这么搞
点赞 回复
分享
发布于 2018-05-10 20:17
那个叫自连接吧
点赞 回复
分享
发布于 2018-05-11 00:17
联想
校招火热招聘中
官网直投

相关推荐

点赞 22 评论
分享
牛客网
牛客企业服务