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


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

相关推荐

10-17 10:05
已编辑
北华大学 全栈开发
牛客872465272号:掉头发了哥
点赞 评论 收藏
分享
11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
评论
点赞
22
分享
牛客网
牛客企业服务