SQL 刷题/【京东】统计 anta 商品支付渠道分布
上一题下一题简单通过率 50%

【京东】统计 anta 商品支付渠道分布

WHERE 条件JOIN 连接聚合函数GROUP BYCASE WHEN字符串函数ORDER BY用户行为分析面试真题

题目描述

来源:京东 SQL 面试真题

某支付 App 会在客户端记录支付流程日志。现在需要统计商品名称为 anta 的日志在各个支付渠道上的分布,并将缺失支付渠道的脏数据也计入结果。

数据表

user_client_log 客户端日志表

字段类型说明
trace_idVARCHAR订单号
uidBIGINT用户 ID
logtimeDATETIME客户端事件发生时间
stepVARCHAR客户端步骤,如 select、order、start、failed、end
product_idVARCHAR商品 ID
pay_methodVARCHAR支付方式,可为空

product_info 商品信息表

字段类型说明
product_idVARCHAR商品 ID,主键
priceDECIMAL商品价格
typeVARCHAR商品品类
product_nameVARCHAR商品名称

统计口径

  • 只统计 product_name = 'anta' 的客户端日志。
  • 每条符合条件的日志计为 1 次渠道记录,不限制客户端步骤。
  • pay_method 为 NULL、空字符串或只包含空格时,统一归入 unknown 渠道。
  • 使用日志总条数统计渠道次数,脏数据也必须计入。

题目要求

  • 输出支付渠道和对应的日志次数。
  • 按渠道次数降序排列。
  • 渠道次数相同时,按渠道名称升序排列。

期望输出列

列名说明
pay_method支付渠道,脏数据统一显示为 unknown
cnt该渠道对应的日志次数

数据样例

当前运行环境
trace_idVARCHAR(50)uidBIGINTlogtimeDATETIMEstepVARCHAR(20)product_idVARCHAR(32)pay_methodVARCHAR(20)
C10011012022-01-01 09:00:00selectp100wx
C10021022022-01-01 09:10:00orderp100wx
C10031032022-01-01 09:20:00startp100wx
C10041042022-01-01 09:30:00endp100wx
C10051052022-01-01 09:40:00orderp100alipay
C10061062022-01-01 09:50:00failedp100alipay
C10071072022-01-01 10:00:00orderp100NULL
C10081082022-01-01 10:10:00orderp100
输入数据显示 8 / 10
SQL 编辑器正在保存草稿...
正在加载 SQL 编辑器...

运行你的 SQL 查询后,结果将显示在这里