小明需要处理某支付app会在客户端打印的日志。其中有product_info(product_id,price,type,product_name)分别代表product_id 商品id、price 商品价格、type 商品类型、product_name商品名称(表中数据已去重)。 【问题】小明需要找出不同商品类型下商品价格排名前2的3个商品,最终以商品的价格逆序返回(价格相同则以商品名称排序);返回四列:商品id、商品名称、商品品类、商品价格 【知识点】子查询、条件查询、窗口函数、条件查询、排名函数、排序函数 【示例结果】返回四列:商品id、商品名称、商品品类、商品价格 【示例解析】 选出商品价格排在前两名的两个商品,最后根据商品价格和商品名称再次排序得到前三个商品的返回字段 注: 无需考虑返回为空的异常处理
示例1

输入

DROP TABLE IF EXISTS `product_info`;
CREATE TABLE IF NOT EXISTS `product_info`(
    product_id varchar(32) NOT NULL,
    price int(32) DEFAULT 0,
    type varchar(32) NOT NULL,
    product_name varchar(255) NOT NULL,
    UNIQUE uni_product(product_id)
);
INSERT IGNORE `product_info` VALUES 
    ('p100',100,'shoes','anta'),
    ('p101',200,'shoes','li-ning'),
    ('p102',50,'shoes','erke'),
    ('p103',500,'shoes','nike'),
    ('p599',5000,'telephone','huawei'),
    ('p600',6000,'telephone','iphone13'),
    ('p601',2000,'telephone','vivo'),
    ('p602',1500,'telephone','oppo'),
    ('p603',5500,'telephone','iphone12'),
    ('p604',3000,'telephone','xiaomi'),
    ('p605',1000,'telephone','zte'),
    ('p233',2,'water','wahaha');

输出

p600|iphone13|telephone|6000
p603|iphone12|telephone|5500
p103|nike|shoes|500
加载中...