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


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

相关推荐

头像
11-06 10:58
已编辑
门头沟学院 嵌入式工程师
双非25想找富婆不想打工:哦,这该死的伦敦腔,我敢打赌,你简直是个天才,如果我有offer的话,我一定用offer狠狠的打在你的脸上
点赞 评论 收藏
分享
微风不断:兄弟,你把四旋翼都做出来了那个挺难的吧
点赞 评论 收藏
分享
点赞 22 评论
分享
牛客网
牛客企业服务