首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

常见大数据面试SQL-查询每个产品每年总销售额

一、题目 已知有表如下,记录了每个产品id、产品名称、产品销售开始日期、产品销售结束日期以及产品日均销售金额,请计算出每个产品每年的销售金额 样例数据 +-------------+----------...year_first_day, '2020-12-31' as year_end_day) select year,year_first_day,year_end_day from dim_year 查询结果...-----+----------------------+----------------------+-------+-----------------+---------------+ 3.比较计算每年每个产品在售天数...但是这个date_diff 的值比预期小1,这是因为我们算了日期差,所以我们在结果上+1即可。 4.筛选符合条件数据,计算最终结果 得到有销售的年份和天数之后,乘以每天的销售和即可得到最终结果。...year, (date_diff + 1) * average_daily_sales as total_amount from tmp where date_diff >= 0 查询结果

18410
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    mongodb与sql在查询上的区别

    之前在“这个场景更适合使用NoSQL”文章中通过和SQL的对比 介绍了NOSQL数据存储结构的特点,一位朋友看后希望再介绍下NOSQL查询方面的特点 这里以NOSQL中比较典型的mongodb数据库为例...,先从用法上看下mongodb的操作方式,以后会更深入的介绍mongodb查询方面的细节 下面从3个方面看下mongodb的查询方式 (1)简单查询 类似于sql的 select * from...table; (2)条件查询 类似于sql的 select * from table where name='jones'; (2)嵌套文档查询 类似于sql的join,但由于mongodb...支持文档内部嵌套子文档,所以嵌套文档查询非常简单 准备数据 为了执行查询操作,需要先向数据库插入几条数据 (1)选择目标数据库 和sql数据库一样,需要先选择目标数据库 > use tutorial...注意 我的mongodb中并没有 tutorial 这个数据库,但可以直接切换过去 这里和sql数据库有点不同,实际上,mongodb中创建数据库并不是必需的操作,数据库与集合只有在第一次插入文档时才会被创建

    2K50

    Hadoop上时实类SQL查询系统对比

    以前只用过Hive与impala两个类SQL查询系统,最近又将Hortonworks开源的Stinger与Apache的Drill做了些调研。累死累活搞了一天的资料,头都大了。...由于调查时间比较短(一天的时间都头晕眼花了,再长点估计我就要过劳死了),所写之处难免会有差错,欢迎大家指正 总体来说虽然impala、stinger、drill三个系统都是类SQL实时查询系统,但是它们的侧重点完全不同...impala主要是为hdfs与hbase数据提供实时SQL查询。它是根据google的dremel论文实现的一套分布式系统,自用户提交的SQL开始都是基于自身的分析器与执行器。...下图是其架构图 (图片来源自impala安装使用说明书) 由 于完全脱离了M/R技术,自身根据HDFS的文件分布来调整计算,所以速度较Hive有很大提升。...它的数据接口都是插件化,理论上支持各种查询语言,SQL自然也不例外,不过目前这个系统还是Apache的一个孵化项目,很多功能尚未完成与稳定。但是可以预见,这个系统如果完成是很有影响力的。

    60220

    如何编写更好的SQL查询:终极指南(上)

    结构化查询语言(SQL)是数据挖掘分析行业不可或缺的一项技能,总的来说,学习这个技能是比较容易的。对于SQL来说,编写查询语句只是第一步,确保查询语句高效并且适合于你的数据库操作工作,才是最重要的。...Hive是一个用于查询和管理大型数据集的类似于SQL的查询语言界面;Spark SQL可用于执行SQL查询。 简而言之,以下就是为什么你应该学习这种查询语言: 即使对于新手来说,SQL也很容易学习。...SQL是对编程语言的一种极好的补充;在某些情况下,编写查询甚至比编写代码更为优先! ... SQL处理和查询执行 为了提高SQL查询的性能,首先需要知道,运行查询时,内部会发生什么。...编写SQL查询 需要进一步说明的是,垃圾回收原则(GIGO)原本就是表达在查询处理和执行之中:制定查询的人,同时也决定着SQL查询的性能。 这意味着在编写查询,有些事情可以同步去做。...在逻辑上,实际执行计划更为有用,因为它包含了执行查询时,实际发生的其它细节和统计信息。

    2.3K60

    在BI软件上使用SQL查询其实很简单

    如何在BI软件上使用SQL查询? 我理解在BI上使用SQL是对原始数据进行查询、筛选、清洗,这一点主流BI工具像power BI,tableau、superset都可以支持。...你只需要写好SQL代码,对数据里的相关表进行查询,就可以对查询后的新表进行分析。 举个例子,在tableau里使用SQL,这里我们以连接MySQL数据库为例。...最后,进行自定义SQL查询,写入SQL代码,就会得到新的表。 其他BI工具SQL使用方法也类似,都是基于数据库表的查询,然后做结果数据供BI进行分析、可视化。...比如,开源BI superset 的SQL LAB模块对SQL支持非常友好,几乎比大多数商业BI都要强大。 相当于查询的结果可以直接可视化,很适合及时分析。...可以检索过去查询过的东西 还有国内的一些BI,对SQL更是都会支持,使用方法千篇一律。

    16210

    抢在客户之前在Kubernetes上发现SQL慢查询

    介绍 在今天快速发展的技术领域中,SQL 数据库与 Kubernetes 集群的集成变得越来越普遍。这种融合在释放可扩展性和效率的新视野的同时,也引入了在监视和管理 SQL 查询方面的独特挑战。...我们将: 部署一个依赖于 Postgres 的示例 Django 应用程序 在该应用程序上执行查询,并通过延迟监视执行的查询 注意:本博客文章是关于在 Kubernetes 集群中监视 SQL 查询,但相同的原则也可以扩展到其他协议...Player.name ORDER BY League.name, HomeTeam.name, COUNT(DISTINCT Spectator.id) DESC 访问此端点后,可能需要一些时间(约 6 秒)来计算结果...详细部分的查询也与在 Django 服务器上运行的实际查询相匹配(如果查询包含文字,它们将被占位符替换)。 如果我们想要查看最快的查询,我们可以在协议右上角的“排序方式”选项更改为“升序”。...将显示如下内容: 按升序延迟排序的 SQL 查询,第 1 页 按升序延迟排序的 SQL 查询,第 2 页 在这里,我们可以看到在 http://localhost:8200/football/data/

    9610

    Doris聚合多维分析:让你的数据会说话,让数据更懂业务的艺术

    与 ROLLUP 不同,CUBE 会计算所有维度的子集。例如,对于按产品和地区进行统计的销售数据,CUBE 会计算每个产品在每个地区的销售额、每个产品的总销售额、每个地区的总销售额以及整体总销售额。...: 总计的销售额; 各年度的销售额小计、各类别下商品的销售额小计、各州的销售额小计; 每年每类产品的销售额小计、每个州每个产品的销售额小计、每年每个州的销售额小计和每年每个州各类别的产品的销售额小计。...每年度在每个州的销售额小计 每年度每个州每个产品的销售额小计 通过GROUPING SETS,她精确指定了需要关注的维度组合,既获得了所需信息,又避免了无用的计算开销: SELECT YEAR...起初,他写了四个单独的SQL查询,每次生成报告都要等待近20分钟。 "这样的效率太低了!"小张决定优化查询性能。...除了查询优化,预计算也是提升多维分析性能的关键。产品经理老王发现一个问题:每次查看销售数据时,都要分别统计日、周、月三个维度的数据。这不仅耗时,还占用大量计算资源。 解决方案是使用ROLLUP预计算。

    12210

    Tableau LOD:从SUM+IF条件计算到SUMIF

    在这一点上,近似编程的DAX确实是更胜一筹,其次是高级灵活的SQL,不过二者都需要理解原理、技能卓越的分析师才能发挥最大价值。...以“本年的销售额总和”为例,初学者使用Excel、SQL和Tableau会用如下的计算实现。... Excel SUM+IF: =SUM(IF YEAR(T2:T100)=2022,S2:S100,0) ), 其中T列是订单年度,S列是销售额  SQL SUM+IF: SELECT SUM...上述“2022年的销售额总和”,就有了第二种写法: Excel SUMIF: = SUMIF(T:T,2022,S:S),其中T列是订单年度,S列是销售额 SQL SUMIF: SELECT SUM...不管是何种语法,前端的表达式都将转化为数据库层面的SQL查询,因此从SQL的角度看二者的共同点,二者都是嵌套查询(nested query)和数据合并(join)的组合形式。

    11900

    从硅上的SQL看云计算的发展

    最近的SQL in Silicon的大规模宣传,让大家看到了Oracle在做什么。结合云计算的发展,的确有一些值得让人思索的地方。 说到Oracle,闲扯一下Oracle的招人制度。...抱怨完,说说硅上的SQL这个鬼吧。这项目我知道的时候大概在2011年,因为同行是冤家,信息灵通一些。大概上Oracle的想法是既然买下了Sun总要做点什么。...当然,作为一家数据库起家的公司,Oracle的其他业务基本上靠收购。中间件,收购,ERP,收购,硬件,还是收购。...然而我觉得可能Oracle的云计算希望并不在西雅图,而是做SQL in Silicon,硅上的SQL的这群人。计算机发展的初期,是一个计算功能一台机器,要做其他的计算只好机器拆了重新搭。...计算机变成了万能图灵机的一个实现。人类从此进入康庄大道,卖硬件的卖硬件,卖软件的卖软件,大家都有钱赚。 那么SQL in Silicon是神马鬼?

    1.2K40

    6.1.1-Hue上SQL查询结果显示不全异常分析

    3.通过Hive的CLI查询结果如下,注意s4字段的值特别长。 ? 4.使用Hue执行查看结果。 ? 可以看到最后一个字段s5没办法查看完整,即使把横向滚动条拖到最右边。...补充测试: 2.在右侧面板收起的情况下再次点击查询。 ? ? 可以发现最后一个字段s5还是显示不全。所以我们在执行查询的时候要先把右侧的面板打开。...3 第一标题 1.在Hue上使用Hive和Impala执行SQL语句,如果返回的数据过长可能会导致部分数据无法显示完整,这应该是Hue的Web UI的bug,暂未找到相应的jira编号。...2.在通过Hive或Impala执行SQL查询成功后返回的结果动态构建结果栏的Table表格,在结果显示出来后,Table表格已经初始化好,部分数据无法显示时,解决办法是可以将右侧的工具栏收起来显示完整的结果...3.但是需要注意在执行SQL前需要将右侧的工具栏展开,否则在查询返回结果初始化Table后无法在隐藏右侧工具栏后完全显示。

    3.9K40

    计算特殊奖金-sql语句之UNION(联合查询)的用法

    用处:将两个或更多查询的结果集组合为单个结果集,该结果集包含联合查询中的所有查询的全部行。 例题:1873....计算特殊奖金 表: Employees +-------------+---------+ | 列名 | 类型 | +-------------+---------+ | employee_id...写出一个SQL 查询语句,计算每个雇员的奖金。如果一个雇员的id是奇数并且他的名字不是以’M’开头,那么他的奖金是他工资的100%,否则奖金为0。...查询结果格式如下面的例子所示。...思路:我们可以分为两个部分进行,第一个部分将id除以2不等于0并且名字开头不是M的拿出来,然后UNION上id除以2等于0的并且名字不是M开头的并且把salary乘以0置为0,并且根据题意根据id排序。

    69610

    国产BI的“耻辱”:QuickBI 计算功能测评(下)

    高级计算:表计算(窗口函数)和 LOD(聚合子查询)满足高级分析的能力,体现在多个详细级别(颗粒度)的问题上 计算的优先级设定及其调整,特别包括筛选的优先级次序 为了测评的公平公正(后期也可以用在其他产品上...年各月的销售额总和及其同环比(差异计算) 表计算:各个子类别的销售额总和及其占比(合计百分比) 组合分析:不同订单频次的客户数量 组合分析+:各个年度的销售额及其客户阵列(Customer Cohort...国产 BI 普遍把“即席分析”弄成了“快速查询”,不得不唏嘘一阵。在 QuickBI 中,没有上述如此便捷的方式,当然这个可以理解。 不能理解的是,我甚至不能在字段上右键新建计算!...(这里称之为过滤)‍ 筛选“2022年”的数据完成分析,相当于在 OrderDate 字段基础上增加自定义YEAR 计算获得日期的年度部分(datepart),而后使用逻辑判断返回“真/TRUE”的明细...{2014, 2015, 2016, 2017} 回到 QuickBI 的过滤器上,当我选择年度筛选,就只应该高亮上面四年的数值,其他年度不可选,或者标记为灰色表示即便选了也没有意义。

    41100

    0640-6.1.1-Hue上SQL查询结果显示不全异常分析-补充

    3.通过Hive的CLI查询结果如下,注意s4字段的值特别长。 ? 4.使用Hue执行查看结果。 ? 可以看到最后一个字段s5没办法查看完整,即使把横向滚动条拖到最右边。...3 问题总结 1.在Hue上使用Hive和Impala执行SQL语句,如果返回的数据过长可能会导致部分数据无法显示完整,这应该是Hue的Web UI的bug,暂未找到相应的jira编号。...Fayson在前面的文章中已经进行了说明,参考《0636-6.1.1-Hue上SQL查询结果显示不全异常分析》。...2.本文是通过Hue中不太为大家所熟知的功能展开单行数据来解决查询结果显示不完整的问题。 提示:代码块部分可以左右滑动查看噢 为天地立心,为生民立命,为往圣继绝学,为万世开太平。

    1.2K60

    从根上理解SQL的like查询%在前为什么不走索引?

    比如,昨天就有人问我,like 查询 % 在前为什么不走索引?不能人云亦云,我们应该从根上理解它,为什么要这样设计?为什么不走索引? 其实结果对我来说,并不重要,重要的是过程。...所以,今天我就从根上给你说一说为什么 like 查询 % 在前为什么不走索引? 例如,看这个例子: ? 说到这个例子,估计很多人会提到最左匹配原则。那么为什么要搞一个最左匹配原则呢?...SQL 索引也是这样的。 然后,我们再来看标题中的问题。% 在前,就代表,我前面的内容不确定。不确定,我们怎么比较?只能一个一个的比较,那就相当于,全匹配了,全匹配就不需要索引,还不如直接全表扫描。

    5.2K20

    MySQL8 窗口函数

    一 什么是窗口函数在 MySQL 8 中,窗口函数(Window Functions)是一类强大的分析函数,允许你在查询结果集上执行计算,而无需将数据分组到多个输出行中。...现在有如下几个需求,大家把这几个需求搞懂了,基本上窗口函数就会用了。计算累计销售额需求:按产品 ID 分组,计算每个产品的累计销售额。...最终查询结果如下:计算移动平均值需求:按产品 ID 分组,计算每个产品的最近 3 笔销售记录的移动平均销售额。...最终查询结果如下:计算前后行的差值需求:按产品 ID 分组,计算每个销售记录与上一个销售记录之间的销售额差值。...amount - LAG(amount, 1) OVER (PARTITION BY product_id ORDER BY sale_date):计算当前行与上一行的销售额差值。

    10210
    领券