小明需要处理某支付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
加载中...