小明负责支付订单的日志分析工作,公司有表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');

输出

douyin|1
加载中...