美文网首页
SQL每日一题(2020-05-28)

SQL每日一题(2020-05-28)

作者: 扎西的德勒 | 来源:发表于2020-06-02 11:25 被阅读0次

    题目:

    有如下一张表SaleTypes image 根据客单类别表统计出每个省份每个城市的低客单数和高客单数,如果某城市无低客单记录或高客单记录,其统计数为0 要求:通过一条sql语句得到下列结果 image

    参考答案:

    数据库版本:Server version: 8.0.20 MySQL Community Server - GPL

    建表语句

    create table dailytest_20200528
    (
        买家数据 nvarchar(20),
        省份   nvarchar(20),
        城市   nvarchar(20),
        客单类型 nvarchar(20)
    ); 
    
    

    数据准备

    insert into dailytest_20200528 values('张三','湖北','武汉','低客单');
    insert into dailytest_20200528 values('李四','湖北','武汉','高客单');
    insert into dailytest_20200528 values('王五','湖北','武汉','高客单');
    insert into dailytest_20200528 values('赵六','湖南','岳阳','高客单');
    insert into dailytest_20200528 values('钱七','湖南','长沙','低客单');
    insert into dailytest_20200528 values('孙八','湖南','长沙','低客单');
    

    查询逻辑

    SELECT 省份,
           城市,
           SUM(低客单) AS 低客单,
           SUM(高客单) AS 高客单
    FROM (
    #分组函数语句中,SELECT后的字段必须使用聚合函数或者出现在GROUP BY分组字段中
          SELECT 省份,
                 城市,
                 CASE WHEN 客单类型 = '低客单' THEN COUNT(客单类型) ELSE 0 END AS 低客单,
                 CASE WHEN 客单类型 = '高客单' THEN COUNT(客单类型) ELSE 0 END AS 高客单
          FROM dailytest_20200528
          GROUP BY 省份, 城市, 客单类型) AA
    GROUP BY 省份, 城市;
    
    
    

    附:
    题目来源:https://mp.weixin.qq.com/s/M2ul0bC45_tGM1UoYc_g-g

    相关文章

      网友评论

          本文标题:SQL每日一题(2020-05-28)

          本文链接:https://www.haomeiwen.com/subject/gpxuzhtx.html