小明负责支付订单的日志分析工作,公司有表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中下单的用户channel信息统计 【知识点】 聚合函数,条件判断,连接,聚合统计 【示例结果】 返回列 channel cnt 【示例解析】 user_info中未在order_log下单的用户为user_0002、user_0003,douyin渠道排序在pdd前面,最后返回douyin 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');
加载中...