小明负责支付订单的日志分析工作,公司有表order_log; order_log表代表玩家创建订单的客户端日志(order_id订单号,uid用户id,日志采集时间logtime,客户端记录时间time,支付方式pay_method)

【问题】 由于order_log中order_id未清洗的原因,用户购买的product_id在order_id中需要统计订单号出现次数最多的一个product_id,以product_id进行顺序排列返回 order_id构成为order_id + '_' + product_id;且product_id以p开始命名,例如p100;order_id不会带有p 【知识点】 正则表达式,分组统计,排序 【示例结果】 返回列product_id | cnt

【示例解析】 order_id中藏着的product_id为p599出现了六次,出现频率最高 注:不需要注意返回数据为空
DROP TABLE IF EXISTS `order_log`;
CREATE TABLE IF NOT EXISTS `order_log`(
order_id varchar(255) NOT NULL,
uid varchar(32) DEFAULT NULL,
logtime varchar(32) DEFAULT NULL,
time varchar(32) DEFAULT NULL,
pay_method varchar(32) DEFAULT NULL,
UNIQUE uni_trace(order_id)
);
INSERT IGNORE `order_log` VALUES (
'aaa1_p599','user_0001','2021-01-01 11:00:00','2021-01-01 10:00:00',''),
('aaa2_p599','user_0001','2021-01-01 12:00:00','2021-01-01 10:00:00',''),
('aaa3_p599','user_0001','2021-01-01 13:00:00','2021-01-01 10:00:00',''),
('bbbb_p599','user_0006','2022-01-01 09:59:58','2021-01-01 09:59:58',''),
('cccc_p599','user_0006','2022-01-01 09:59:58','2021-01-01 09:59:58',''),
('dddd_p599','user_0006','2022-01-02 09:59:58','2021-01-02 09:59:58','');p599|6
考点:SQL 查询
限制 1 秒 / 256MB | SQL 题
本题是 SQL 题:给出建表语句与目标结果,要求写出查询语句。
建议步骤
GROUP BY 聚合,过滤分组结果用 HAVING。ROW_NUMBER()、RANK()、SUM() OVER)。易错点:排序方向写反;GROUP BY 后选了非分组字段;没做 ROUND 保留小数;空值参与聚合。
解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。
本题来源:2023年秋招-京东-技术通用岗位-第四批笔试。