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

滴滴面试题:打车业务问题如何分析?

当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总,来解决“每天”这样的问题。用“日期“来分组(group by),用 count(司机id) 来汇总司机数。...当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总,来解决“每天”这样的问题。用“日期“来分组(group by),用 sum(流水) 来汇总流水。...根据《猴子 从零学会sql》里讲过的,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),用count(司机id)来汇总司机数。...根据《猴子 从零学会sql》里讲过的,遇到“每个”这类型问题要用分组汇总。“每个月”按月份分组(group by),在线时长的总长利用sum(在线时长)来计算。...而我们发现新司机在 “在线时长数据” 表 中并没有,而是在 “司机数据”表 中通过查询语句才能得到,因此我们用两个表的联结,得到 8,9月北京新司机的在线时长,然后再利用子查询,使用sum(在线时长)得到总时长

1.6K20

在Pandas中通过时间频率来汇总数据的三种常用方法

当我们的数据涉及日期和时间时,分析随时间变化变得非常重要。Pandas提供了一种方便的方法,可以按不同的基于时间的间隔(如分钟、小时、天、周、月、季度或年)对时间序列数据进行分组。...在Pandas中,有几种基于日期对数据进行分组的方法。...Pandas 中的 Grouper 函数提供了一种按不同时间间隔(例如分钟、小时、天、周、月、季度或年)对时间序列数据进行分组的便捷方法。...groupbyPandas中的dt访问器可以从日期和时间类列中提取各种属性,例如年、月、日等。...在Pandas中,使用dt访问器从DataFrame中的date和time对象中提取属性,然后使用groupby方法将数据分组为间隔。

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

    抖音面试题:遇到连续问题怎么办?

    image.png 【抖音面试题】 有一张“用户登陆记录表”,包含两个字段:用户id、日期。 image.png 【问题】查询2021年每个月,连续2天都有登陆的用户名单。...首先对用户连续登陆进行标记,也就是日期相同的打赏同一个标记(如下图)。 image.png 然后,用登陆日期的“天”和“每个月登陆顺序”的差值来做标记(如下图)。...子查询 1)获取登陆日期的天,需要用到day()函数; 2)获取登录日期的月,需要用到month()函数; 3)获取每个月登陆顺序,这类问题属于“每个+排序”,要想到用《猴子 从零学会SQL》里讲过的知识...7 where 日期 between '2021-01-01' and '2021-12-31'; 查询结果(把这个SQL记为子查询t1): image.png 用“天”和“每个月登陆顺序”的差值来做标记...与原题的区别在于: 1)“连续2天”变成了“连续5天”:对最后的where条件进行修改; 2)查询“用户名单”变成了“用户数”:用group by按月分组,然后统计用户数和count(distinct

    1.2K00

    常用sql查询语句记录

    ​前言 本文章主要记录下常用的sql查询,简单的直接展示语句,复杂的做一下解释。 1、sql按月统计每月订单数量要按月统计每月的订单数量,您可以使用MySQL中的日期函数和聚合函数。...FROM orders GROUP BY order_month ORDER BY order_month;在这个查询中,我们使用了DATE_FORMAT()函数将order_date列格式化为年和月的格式...总的来说,COALESCE函数在处理可能包含NULL值的数据时非常有用,它能帮助我们获取第一个非NULL的值,从而更好地处理和分析数据6、pgsql中截取出字段中的时间日期SELECT SUBSTRING...中:\d{4}-\d{2}-\d{2} 匹配日期部分(年-月-日)。...请注意,这种方法假设日期和时间之间只有一个空格,并且时间部分始终紧跟在日期之后。

    14310

    图解面试题:如何分析红包领取情况?

    当出现“每天”要想到《猴子 从零学会sql》里讲过的分组汇总来解决这样的问题。 用“日期”来分组(group by),用count(用户ID)来汇总登录用户。...下图是两表联结的条件(通过用户ID和日期联结)。 (3)使用哪种联结呢? 因为要查询的是领取红包的用户,所以要保留“领取红包”表(上图右表)中的全部数据,因此使用右联结。...从a表中,用分组汇总,求出每类用户的个数,人均领取金额,人均领取次数。...ID = b.用户ID; 如果“领取红包”表中的用户为非空,那么该用户是“领过红包用户”(也就是在“领取红包”表中匹配到了数据);如果“领取红包”表中的用户为空的,那么该用户是“未领取红包用户”(也就是在...按月份分组(group by)用sum来统计数量。

    1.4K20

    数据库日期类型字段设计,应该如何选择?

    个字节用于存储1900年1月1日以前或以后的天数,数值分正负,正数表示在此日期之后的日期,负数表示在此日期之前的日期;后4个字节用于存储从此日零时起所指定的时间经过的毫秒数。...其中前2个字节存储从基础日期1900年1月1日以来的天数,后两个字节存储此日零时起所指定的时间经过的分钟数。...在之前的设计开发中,因为有支持多种数据库这种需求,所以首先否定了日期时间这样的类型。...这种方式最大的缺点在于: 不方便对时间进行分组查询,比如按月统计、按季 统计 DBA在维护时,不能直观的根据返回的行结果,看到简单明了的结果(看到的是毫秒数) 使用这种方式的特点是牺牲一点易用性和可理解性...满足了查询结果的直观性和准确性要求。

    2.1K20

    打工人打工魂!销售分析案例来啦!

    、销售员汇总 1)、因销售记录中时间字段是具体的日期,题目要求是按照“月份”分组,需要用date_format函数把日期转为月份。...a,然后对表a的查询结果按月份进行汇总查询。..., '%Y %m'); 得到要求的结果如下: 【本题考点】 1、重点考查用case when语句进行列数据转换和条件判断,在实际工作中,这个语句是经常用到的 case when then...) 3、年+月的表达方法 SQL中,单独的对字段取年、月,用相应的函数 year(日期字段) 对日期字段取年份 month(日期字段) 对日期字段取月份 但是,要取“年+月”,可以采用函数 date_format...下列字符和字符串是常用的: 格式化日期常用的字符串:

    14930

    get动态增量新功能,让大数据量入集市更便捷

    举个例子,某部门分析的是订单数据,有历史5年的订单数据(2016年1月到2021年3月),历史数据不会变化,只有最近3个月的数据会发生变化,每天想要查询的历史所有订单数据(2016年1月到昨天的数据都可能会查询...如果使用“增量导入数据”的“普通增量”,每天追加前一天的数据到集市中没有问题,但是无法满足“最近3个月的数据会变化”的场景,比如:咱们在2021年3月10号,将2021年3月9号的数据追加到集市中,但是到了...历史数据按月全量入(2021-03-01日进行) (1) 需要一个sql数据集,查询 表“某部门订单数据”的全部数据,且需要有日期字段。...实现的效果是历史数据按月分割,不同月份的数据存储在不同的集市文件中,并自动给集市数据加上meta,meta名为:_Date_Range_,meta值:数据对应的月份。...一个完整的动态增量的实例就讲完了,实际使用中咱们可以根据情况进行调整,总的来说动态增量可以实现某段时间的数据按月(按年或按日)进行分割入集市,并打上meta,同时,可以实现对已经入集市的数据进行按月(按年或按日

    1.1K30

    Pandas透视表及应用

    Pandas 透视表概述 数据透视表(Pivot Table)是一种交互式的表,可以进行某些计算,如求和与计数等。所进行的计算与数据跟数据透视表中的排列有关。...values,index,columns,aggfunc,下面通过案例介绍pivot_tabe的使用  零售会员数据分析案例 业务背景介绍 某女鞋连锁零售企业,当前业务以线下门店为主,线上销售为辅,...'data/会员信息查询.xlsx') custom_info.info() # 会员信息查询 custom_info.head() 需要按月统计注册的会员数量 # 给 会员信息表 添加年月列 from...(数据质量问题) 由于会员等级跟消费金额挂钩,所以会员等级分布分析可以说明会员的质量  通过groupby实现,注册年月,会员等级,按这两个字段分组,对任意字段计数  分组之后得到的是multiIndex...,我们要统计每年的复购率,所以要先对数据进行订单日期筛选,这里我们定义一个函数  统计2018年01月~2018年12月复购率和2018年02月~2019年01月复购率 计算2018年的复购率  计算2018

    23210

    拖拽报表设计香不香—JimuReport 1.4.0新特性

    11月初我们发布了1.4.0里程碑稳定版本,增加了一些新功能包括丰富了查询控件、支持查询JS/CSS增强、支持mongodb、redis、存储过程数据集、支持分组小计、支持图表钻取、条件钻取、支持表格背景设置斑马线...、支持分栏功能、支持分版功能、支持动态合并格等等;下面就让我们一起来看一下具体的功能吧。...一、查询 1.控件类型 查询控件类型包括:输入框、下拉单选、下拉多选、 范围查询、模糊查询、下拉树、自定义下拉树;丰富了日期查询,可按年、按月查询;并且可设置默认值。...:调用key即可 3.MongoDB MongoDB调用方法:在报表SQL中配置满足标准的MongoDB Sql语法 三、分组小计 1.横向:compute用法 compute可实现横向列加减乘除包括带括号...()的优先计算。

    1.1K20

    数据开发数仓工程师上手指南(二)数仓构建分层概念

    我们以两个实际行业应用案例来看:案例一:零售行业背景:某大型零售企业希望通过数据分析提高销售业绩。实施:构建数据仓库,集成销售数据、客户数据和库存数据,采用星型模型设计。...特征:描述性:维度通常包含描述性的信息,例如产品名称、客户名称、时间日期等。分类和分组:维度允许数据按不同的类别和层次进行分类和分组,以支持多维分析。...维度属性是查询约束条件、分组和报表标签生成的基本来源,是数据易用性的关键。维度属性的示例产品维度(Dim_Product):产品ID(Product_ID):唯一标识每个产品的主键。...度量通常存储在事实表中,并与维度表关联,以提供丰富的上下文信息。度量是数据仓库和商业智能(BI)系统中进行数据分析和报告的核心要素。度量通常为数值型数据,作为事实逻辑表的事实。...2.1.10统计粒度统计粒度是统计分析的对象或视角,定义数据需要汇总的程度,可理解为聚合运算时的分组条件(类似于SQL中的group by的对象)。

    36531

    质量看板开发实践(三):bug柱状图

    、按月查询、按周查询、自定义日期范围; 能够切换项目; 刷新当前页面,自动触发查询请求; 切换日期维度,自动触发查询请求; 切换项目,自动触发查询请求; 显示查询结果总数; 最好可以把柱状图和折线图结合起来...,即每个日期对应的bug数,具体可以看下注释 同理可以写出按周查询、按月查询、按年查询的视图函数 按周查询 def bug_week_data(request): """ 柱状图,按照周查询...: bug["sum"] } return JsonResponse(res, json_dumps_params={'ensure_ascii': False}) 代码说明: 按周查询和按月查询这两个的处理方式和按日查询类似...,因为它们的横轴都具体到某一天 只要拿到开始日期,就能计算得到结束日期,具体过程可以看注释,注释写的很详细 按年查询有一点区别,我希望按年查询时,横轴是一年的12个月份 由于从jira查询到的bug数据是具体到某一天的...,所以得到1年365天的bug数据后,需要对它们进行聚合,以月份进行分组求和 这就很麻烦了,想了很久才找到解决方法,步骤如下 ①从jira提取bug数据后,把日期和bug数分别存到一个列表中,对日期列表进行切割

    3.2K100

    质量看板开发实践(三):bug柱状图

    按月查询、按周查询、自定义日期范围; 能够切换项目; 刷新当前页面,自动触发查询请求; 切换日期维度,自动触发查询请求; 切换项目,自动触发查询请求; 显示查询结果总数; 最好可以把柱状图和折线图结合起来...,即每个日期对应的bug数,具体可以看下注释 同理可以写出按周查询、按月查询、按年查询的视图函数 按周查询 def bug_week_data(request): """ 柱状图,按照周查询...: bug["sum"] } return JsonResponse(res, json_dumps_params={'ensure_ascii': False}) 代码说明: 按周查询和按月查询这两个的处理方式和按日查询类似...,因为它们的横轴都具体到某一天 只要拿到开始日期,就能计算得到结束日期,具体过程可以看注释,注释写的很详细 按年查询有一点区别,我希望按年查询时,横轴是一年的12个月份 由于从jira查询到的bug数据是具体到某一天的...,所以得到1年365天的bug数据后,需要对它们进行聚合,以月份进行分组求和 这就很麻烦了,想了很久才找到解决方法,步骤如下 ①从jira提取bug数据后,把日期和bug数分别存到一个列表中,对日期列表进行切割

    4K10

    Mysql常用查询语句

    WHERE 字段名 BETWEEN 初始值 AND 终止值 SELECT * FROM tb_stu WHERE age BETWEEN 0 AND 18 十三按月查询统计数据 SELECT * ...year(data):返回data表达式中的公元年分所对应的数值 month(data):返回data表达式中的月分所对应的数值 day(data):返回data表达式中的日期所对应的数值 十四查询大于指定条件的记录... … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询 (4)NOT IN... 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七显示数据表中重复的记录和记录条数 SELECT  name...,所以在输出效果上有一些差别。

    5.1K20

    elasticsearch 聚合 : 指标聚合、桶聚合、管道聚合解析使用总结

    聚合查询不仅可以帮助用户理解和分析数据中的趋势和模式,还能在业务决策中发挥关键作用。聚合查询支持多种类型,包括指标聚合、桶聚合和管道聚合,每一种都有其特定的应用场景和使用方法。...Date Histogram:根据日期字段的值,将文档按时间间隔(如天、周、月等)分组到桶中,适用于时间序列数据的分析。...应用场景举例:按作者分组的博客文章数量统计、按月份统计的销售记录分析、按价格区间统计的产品数量等。...应用场景举例:在按月份统计的销售记录中找出平均销售额最高的月份、分析不同价格区间产品的销售额总和等。...八、优化建议 避免不必要的大聚合:对于大数据集,执行复杂的聚合操作可能会消耗大量计算资源并影响性能。因此,建议根据实际需求合理设计聚合查询,避免执行不必要的大聚合操作。

    91210

    常用SQL查询语句,值得回看不要错过,好记性不如多看看!

    tb_stu ORDER BY id ASC LIMIT _POST[begin],n 注意:数据的id是从0开始的 测试工作常用SQL查询语句 十一、查询统计结果中的前n条记录 SELECT *...日进行查询 year(data):返回data表达式中的公元年分所对应的数值 month(data):返回data表达式中的月分所对应的数值 day(data):返回data表达式中的日期所对应的数值...)NOT BERWEEN … AND … 对介于起始值和终止值间的数据时行查询 可改成 终止值 (2)IS NOT NULL 对非空值进行查询 (3)IS NULL 对空值进行查询...(4)NOT IN 该式根据使用的关键字是包含在列表内还是排除在列表外,指定表达式的搜索,搜索表达式可以是常量或列名,而列名可以是一组常量,但更多情况下是子查询 十七、显示数据表中重复的记录和记录条数...,所以在输出效果上有一些差别。

    3K30

    用简单程序协助MySQL实现窗口函数

    实际操作中,我们可以在 MySQL 里用 SQL 拼出窗口函数功能,但是需要使用用户变量以及多个 SELECT 表达式从左到右依次计算的隐含规则。...2、2016 年 1 月和 2 月销售额按月分组百分比排名 (1)A1 中语句用于初始化用户变量; (2)A2 中语句子查询 t11 求出上一行的月份和销售额,t1 再求出本月行号与排名,t2 算出每月的行数...from detail where yearmonth in (201601,201602) and sales>49500 order by yearmonth, sales desc; (1)A2 中按月份分组并对销售额求和...、求平均、求最大、求最小及每组行数; (2)A4 按月份将 A2 中 yearmonth 字段值转换成 A3 中相同月份的记录 执行后 A5 的结果如下。...,A2 中按月份从大到小排序 执行后 A6 的结果如下: 看完十多个例子,有没有觉得集算器代码实现 so easy?!

    1.4K30

    3道常见的SQL笔试题,你要不要来试试!

    在笔试过程中,总会出现那么一两道“有趣”的SQL题,来检测应聘者的一个逻辑思维,这对于初入职场的“小白”也是非常不友好。...不用担心,本篇博客,博主整理了几道在面试中高频出现的“SQL”笔试题,助你在接下来的面试中一往无前,势如破竹! ?...step4:根据id和结果分组并计算count 最后一步,我们直接根据step3中获取到的差值,根据id和差值进行一个分组求count即可。...2017-01 8 8 u04 2017-01 3 3 step1: 修改数据格式 从结果反推,需要查询实现按照 年-月 分组的数据,所以我们这一步先对原数据进行一个处理。...step3: 按月累计计算访问量 我们将第二步的结果用变量 t2 来表示。到这一步,我们用一个sum开窗函数,对userid进行分组,mn时间进行排序即可大功告成。

    1.2K20

    linux date -d 的一些使用方法

    的月名缩写 (如:一,代表一月) %B 当前locale 的月名全称 (如:一月) %c 当前locale 的日期和时间 (如:2005年3月3日 星期四 23:05:25) %C 世纪;比方 %Y。...通常为省略当前年份的后两位数字(比如:20) %d 按月计的日期(比如:01) %D 按月计的日期;等于%m/%d/%y %e 按月计的日期,加入空格,等于%_d %F 完整日期格式,等价于 %Y-%m...一般仅仅和 %V 结合使用 %h 等于%b %H 小时(00-23) %I 小时(00-12) %j 按年计的日期(001-366) %k hour, space padded ( 0..23);...1 代表星期一 %U 一年中的第几周。...以周日为每星期第一天(00-53) %V ISO-8601 格式规范下的一年中第几周,以周一为每星期第一天(01-53) %w 一星期中的第几日(0-6),0 代表周一 %W 一年中的第几周,以周一为每星期第一天

    1.1K10
    领券