世界上竟然有如此难写的SQL,一句话竟然如此难写

现有表goods:商品表内有
字段 id:pk,category_id:类别id,shop_id:店铺id
现有需求,查询同一店铺下所有类别的商品id,若大于3条取3条不足3条有多少取多少。

已想破头皮,写了一下午了,并没有写出来!

分组排序,给每组的上商品编号,然后取编号小于4的

set rowcount 3 select * from b