每天一道大厂SQL题【Day06】电商购买金额统计实战

大家好,我是Maynor。相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题,以每日1题的形式,带你过一遍热门SQL题并给出恰如其分的解答。

一路走来,随着问题加深,发现不会的也愈来愈多。但底气着实足了不少,相信不少朋友和我一样,日积月累才是最有效的学习方式!

最近刷题发现用chatGPT当模拟终端还是蛮好用的~

每日语录

我坐在窗边给你发了99条消息。你终于肯回我了,你说“你发你妈 烦不烦” 。我一下子就哭了,原来努力真的有用。你已经开始考虑想见我的妈妈了,你也是挺喜欢我的吧。

第6题:电商购买金额统计实战

请用sql写出所有用户中在今年10月份第一次购买商品的金额,

表ordertable字段:(购买用户:userid,金额:money,购买时间:paymenttime(格式:2017-10-01),订单id:orderid

实现

数据准备

CREATE TABLE test_sql.test6 (
userid string,
money decimal(10,2), paymenttime string, orderid string);
INSERT INTO TABLE test_sql.test6 VALUES('001',100,'2017-10-01','123'); INSERT INTO TABLE test_sql.test6 VALUES('001',200,'2017-10-02','124'); INSERT INTO TABLE test_sql.test6 VALUES('002',500,'2017-10-01','125'); INSERT INTO TABLE test_sql.test6 VALUES('001',100,'2017-11-01','126');

思路分析

思路一:

  1. 首先需要找到所有在10月份购买的订单。
  2. 然后找到每个用户在10月份第一次购买的订单,可以通过使用group by和min函数。
  3. 最后根据每个用户第一次购买的订单的id查询对应的金额。

思路二:

  1. 从test_sql.test6表中选择userid, money, paymenttime, orderid列。
  2. 使用内部查询对每个userid进行分区,并对每个分区的paymenttime列进行排序。
  3. 使用row_number()函数为每个分区分配行编号。
  4. 只选择内部查询中排名为1的行,即每个userid的第一次支付记录。
  5. 从内部查询中选择userid, paymenttime, money, orderid列作为最终结果。
  6. 在WHERE子句中,使用date_format()函数限制结果只包含2017年10月的支付记录。

答案获取

建议你先动脑思考,动手写一写再对照看下答案,如果实在不懂可以点击下方卡片,回复:大厂sql 即可。
参考答案适用HQL,SparkSQL,FlinkSQL,即大数据组件,其他SQL需自行修改。

加技术群讨论

点击下方卡片关注 联系我进群

或者直接私信我进群

文末SQL小技巧

提高SQL功底的思路。
1、造数据。因为有数据支撑,会方便我们根据数据结果去不断调整SQL的写法。
造数据语法既可以create table再insert into,也可以用下面的create temporary view xx as values语句,更简单。
其中create temporary view xx as values语句,SparkSQL语法支持,hive不支持。
2、先将结果表画出来,包括结果字段名有哪些,数据量也画几条。这是分析他要什么。
从源表到结果表,一路可能要走多个步骤,其实就是可能需要多个子查询,过程多就用with as来重构提高可读性。
3、要由简单过度到复杂,不要一下子就写一个很复杂的。
先写简单的select * from table…,每个中间步骤都执行打印结果,看是否符合预期, 根据中间结果,进一步调整修饰SQL语句,再执行,直到接近结果表。
4、数据量要小,工具要快,如果用hive,就设置set hive.exec.mode.local.auto=true;如果是SparkSQL,就设置合适的shuffle并行度,set spark.sql.shuffle.partitions=4;

后记

每天一道大厂SQL题【Day06】电商购买金额统计实战相关推荐

  1. 每天一道大厂SQL题【Day03】订单量统计

    每天一道大厂SQL题[Day03]订单量统计 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典 ...

  2. 每天一道大厂SQL题【Day02】电商场景TopK统计

    每天一道大厂SQL题[Day02] 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典SQL题, ...

  3. 每天一道大厂SQL题【Day01】

    每天一道大厂SQL题[Day01] 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗面试中的经典题,以每日 ...

  4. 每天一道大厂SQL题【Day11】微众银行真题实战(一)

    每天一道大厂SQL题[Day11]微众银行真题实战(一) 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗 ...

  5. 每天一道大厂SQL题【Day14】微众银行真题实战(四)

    每天一道大厂SQL题[Day14]微众银行真题实战(四) 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间,基于大数据岗 ...

  6. 每天一道大厂SQL题【Day17】腾讯外包(微信相关)真题实战(二)

    每天一道大厂SQL题[Day17]腾讯外包(微信相关)真题实战(二) 大家好,我是Maynor.相信大家和我一样,都有一个大厂梦,作为一名资深大数据选手,深知SQL重要性,接下来我准备用100天时间, ...

  7. 每天一道大厂SQL题【Day25】脉脉真题实战(一)每日活跃用户

    文章目录 每天一道大厂SQL题[Day25]脉脉真题实战(一)每日活跃用户 每日语录 第25题: 1. 需求列表 1. 初级题: 每日活跃用户 思路分析 (1) 创建表 (2) 思路 答案获取 加技术 ...

  8. 【sql】在电商情境下提取数据

    总结了几个使用sql语言对电商业务的问题的提数思路.因为网上公开的数据难以获取,这里是取自公开出版书籍中的随书资源,过程在自己的workbench里进行实操,重在展示解决问题的语句的思路. mysql ...

  9. Java毕设项目电商平台客流统计系统(java+VUE+Mybatis+Maven+Mysql)

    Java毕设项目电商平台客流统计系统(java+VUE+Mybatis+Maven+Mysql) 项目运行 环境配置: Jdk1.8 + Tomcat8.5 + Mysql + HBuilderX(W ...

最新文章

  1. 腾讯2017年第三季度财报:微信广告收入大幅增长
  2. java设计模式---模板方法模式
  3. Django打造在线教育平台_day_4: 找回密码
  4. centos7.x 升级svn版本到指定版本(1.10)
  5. MindCon极客周 | 第三届全新席卷而来,SIG英雄帖,做硬核玩家,夺万元大奖!
  6. 【theano-windows】学习笔记八——预备知识
  7. Spring集成Quartz定时任务框架介绍
  8. 火狐和chrome_Firefox,Chrome和Edge都将支持WebAuthn的硬件两因素身份验证
  9. JAVA写同步栈_tomcat实现的同步队列和同步栈
  10. uds下载服务流程图_UDS诊断全集,干货分享
  11. 【大数据部落】r语言多均线股票价格量化策略回测
  12. matlab latex emf 乱码,latex 使用中的一些问题
  13. 现在有哪些好用的程序员学习交流的网站或者app?
  14. 如何提取网易公开课的音频
  15. 中文文案排版风格指南
  16. 纸短情长用计算机破出来的数字,纸短情长简谱数字大全 一看就会的简谱
  17. 启用Win11原生支持的DoH(DNS over HTTPS)和配置自定义的DoH服务
  18. Win10(家庭版)修改中文用户名为英文
  19. 【Python扩展阅读EasyGui 学习文档【超详细中文版】】
  20. 辛巴学院-Unity-剑英陪你零基础学c#系列(三)计算与类型

热门文章

  1. 情人节,那就给她做一个网站吧!
  2. Android mPaaS 接入流程
  3. mpaas如何实现视频播放
  4. [深度学习工具]·音频特征提取pyAudioAnalysis工具包
  5. JavaScript 16进制转10进制
  6. c语言标志符由什么组成,C语言的标识符由什么组成
  7. Spark SQL之延伸Hive On Spark
  8. 学习python应用的暑假(1、爬取图片)
  9. NotifyICon使用
  10. CBD家居健康生命的守护者