京东 · SQL 查询 · 算法编程题
京东 SQL 查询 时限 1 秒 / 256 MB

题目描述

小明负责支付订单的日志分析工作,公司有表order_log;
order_log表代表玩家创建订单的客户端日志(order_id订单号,uid用户id,日志采集时间logtime,客户端记录时间time,product_id商品id,支付方式pay_method)
图片
user_info表代表玩家用户信息(order_id订单号,uid用户id,channel为用户注册的渠道)
图片
【问题】
现需要针对用户过滤统计出未下单的用户的数量,即user_info表中未在order_log中下单的用户的数量
【知识点】
聚合函数,条件判断,连接
【示例结果】
返回列 cnt
图片
【示例解析】
user_info中未在order_log下单的用户为user_0002、user_0003,数量为2
注:不需要注意返回数据为空

样例共 1 组

样例 1
输入
DROP TABLE IF EXISTS `order_log`;
DROP TABLE IF EXISTS `user_info`;
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,
    product_id varchar(32) DEFAULT NULL,
    pay_method varchar(32) DEFAULT NULL,
    UNIQUE uni_trace(order_id)
);
INSERT IGNORE `order_log` VALUES (
    'aaa1','user_0001','2021-01-01 11:00:00','2021-01-01 10:00:00','p599',''),
    ('aaa2','user_0001','2021-01-01 12:00:00','2021-01-01 10:00:00','p599',''),
    ('aaa3','user_0001','2021-01-01 13:00:00','2021-01-01 10:00:00','p599',''),
    ('bbbb','user_0006','2022-01-01 09:59:58','2021-01-01 09:59:58','p599',''),
    ('cccc','user_0006','2022-01-01 09:59:58','2021-01-01 09:59:58','p599',''),
    ('dddd','user_0006','2022-01-02 09:59:58','2021-01-02 09:59:58','p599','');
CREATE TABLE IF NOT EXISTS `user_info`(
    uid varchar(32) DEFAULT NULL,
    channel varchar(32) DEFAULT NULL
);
INSERT IGNORE `user_info` VALUES (
    'user_0001','wx'),
    ('user_0002','pdd'),
    ('user_0003','douyin'),
    ('user_0006','du');
输出
2

算法解析依据充分

考点:SQL 查询

限制 1 秒 / 256MB | SQL 题

题目画像

  • 源站时限:1 秒(牛客口径,非本题专属门槛)

解题思路

本题是 SQL 题:给出建表语句与目标结果,要求写出查询语句。

建议步骤

  1. 先读样例里的建表语句,理清有哪几张表、每张表的字段含义与关联键。
  2. 明确输出字段与输出顺序——排序、列名、小数位数通常都是得分点。
  3. 需要「按某维度统计」时用 GROUP BY 聚合,过滤分组结果用 HAVING
  4. 需要排名或累计时用窗口函数(ROW_NUMBER()RANK()SUM() OVER)。
  5. 拿样例数据在本地跑一遍,确认输出与样例逐行一致。

易错点:排序方向写反;GROUP BY 后选了非分组字段;没做 ROUND 保留小数;空值参与聚合。

解析由校招宝本地引擎整理(依据源站考点标签 / 人工判题标注 / 题面规模信号),非官方题解,仅供思路参考。

本题来源:2023年秋招-京东-技术通用岗位-第五批笔试。

‹ 上一题 全部编程题 下一题 ›
编程算法题为只读内容:无需作答,直接看题与解析 · 本站不提供在线判题 · 解析由校招宝本地引擎整理,非官方题解