【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)

这篇具有很好参考价值的文章主要介绍了【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别),每日一题,Mysql,数据分析,面试,sql

题目

假设你在Uber工作。rides表包含了关于Uber用户在美国各地的行程信息。

编写一个查询,以获取纽约(NY)每位通勤者的平均通勤时间(以分钟为单位),以及纽约所有通勤者的平均通勤时间(以分钟为单位)。

示例:

输入:

rides

列名 类型
id INTEGER
commuter_id INTEGER
start_dt DATETIME
end_dt DATETIME
city VARCHAR

输出:

列名 类型
commuter_id INTEGER
avg_commuter_time FLOAT
avg_time FLOAT

结果显示如下:

commuter_id avg_commuter_time avg_time
11 27 45
22 97 45
33 11 45

答案

解题思路

一般思路是,先计算纽约的平均通勤时间,然后再计算个人的,最后把结果汇总在一起。
其实,直接用窗口函数可以直接得出结果。

答案代码

下面是直接用一个窗口函数,完成对每个ID的平均值计算。

SELECT DISTINCT
    commuter_id
    ,FLOOR(AVG(TIMESTAMPDIFF(MINUTE,start_dt,end_dt)) OVER (PARTITION BY commuter_id)) avg_commuter_time
    ,FLOOR(AVG(TIMESTAMPDIFF(MINUTE,start_dt,end_dt)) OVER ()) avg_time
FROM rides
WHERE city = 'NY'
  • FLOOR(): 用于向下取整,将平均值舍入到最接近的整数。
  • TIMESTAMPDIFF(): 用于计算两个时间戳之间的差值,单位为分钟。
  • AVG( ) OVER (PARTITION BY commuter_id): 用于对每个commuter_id进行分组,并计算每个分组的平均值。
  • AVG() OVER ():OVER ()`表示在整个数据集上进行计算

计算时间差的函数

TIMESTAMPDIFF()
TIMESTAMPDIFF(unit, start_datetime, end_datetime) 是一个用于计算两个日期时间之间差异的 MySQL 函数。它接受三个参数:时间单位、起始日期时间和结束日期时间。

在我们的答案中就用了TIMESTAMPDIFF(MINUTE, start_dt, end_dt)

TIMESTAMPDIFF` 函数的时间单位参数可以是以下之一:

  • MICROSECOND: 微秒
  • SECOND: 秒
  • MINUTE: 分钟
  • HOUR: 小时
  • DAY: 天
  • WEEK: 周
  • MONTH: 月
  • QUARTER: 季度
  • YEAR: 年

DATEDIFF()
DATEDIFF(date1, date2): 这个函数返回两个日期之间的天数差异。它接受两个日期参数,并返回 date2 减去 date1 的天数差异。

TIMESTAMPDIFF() 可以用来计算date 格式吗?
TIMESTAMPDIFF() 函数通常用于计算两个日期时间之间的差异,因此它的参数通常是 DATETIMETIMESTAMP 类型的数据。虽然可以接受 DATE 类型的数据作为参数,但是在处理时会将 DATE 类型的数据隐式转换为 DATETIME 类型,并将时间部分视为零值。

举个例子,如果你要计算两个日期之间的差异:
SELECT TIMESTAMPDIFF(DAY, '2022-01-01', '2022-01-05');

这将返回 4,表示 ‘2022-01-01’ 到 ‘2022-01-05’ 之间相隔 4 天。

虽然 TIMESTAMPDIFF() 可以处理 DATE 类型的参数,但是如果只是想计算日期之间的天数差异,使用 DATEDIFF() 更为简单和直观。
【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别),每日一题,Mysql,数据分析,面试,sql文章来源地址https://www.toymoban.com/news/detail-845480.html

到了这里,关于【数据分析面试】10. 计算平均通勤时间(SQL:timestampdiff() 和datediff()区别)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 数据分析实战│时间序列预测

    时间序列预测问题是一类常见的数据分析问题。数据中往往包含时间标签,这类问题往往根据过去一段时间的数据,建立能够比较精确地反映序列中所包含的动态依存关系的数学模型,并对未来的数据进行预测。 本案例给出二战时期的某气象站温度记录值,通过分析之前的天

    2024年02月11日
    浏览(37)
  • 数据分析-Pandas如何轻松处理时间序列数据

    时间序列数据在数据分析建模中很常见,例如天气预报,空气状态监测,股票交易等金融场景。此处选择巴黎、伦敦欧洲城市空气质量监测 N O 2 NO_2 N O 2 ​ 数据作为样例。 python数据分析-数据表读写到pandas 经典算法-遗传算法的python实现 经典算法-遗传算法的一个简单例子 大

    2024年01月25日
    浏览(35)
  • 时间序列的数据分析(七):数据平稳性

    之前已经完成了六篇关于时间序列的博客,还没有阅读过的读者请先阅读: 时间序列的数据分析(一):主要成分 时间序列的数据分析(二):数据趋势的计算 时间序列的数据分析(三):经典时间序列分解   时间序列的数据分析(四):STL分解 时间序列的数据分析(五):简单预测法    

    2024年02月01日
    浏览(35)
  • 数据分析面试题

    你是如何理解数据分析的?流程如何? 数据分析是机遇对业务的理解,发现业务中的问题或者是潜在的增长点,形成分析思路,并且利用数据分析工具进行分析,给出相应的结论和解决方案,并协调各方推动方案落地,解决问题,最后回到业务中去形成完整的闭环。 数据分

    2024年02月05日
    浏览(23)
  • 面试|兴盛优选数据分析岗

    1.离职原因、离职时间点 2.上一份工作所在的部门、小组、小组人员数、小组内的分工 3.个人负责的目标,具体是哪方面的成本 4.为了降低专员成本,做了哪些方面的工作 偏向于机制、分析方法、思维,当下主要是对于部分高收入专员收入不合理的情况进行分析,可能是作弊

    2023年04月26日
    浏览(26)
  • 数据分析之面试题目汇总

    数据清洗是指在数据分析过程中对数据进行检查、处理和纠正的过程;是数据预处理的一步,用于处理数据集中的无效、错误、缺失或冗余数据 常见的清洗方法包括:处理缺失值、处理异常值、去除重复值、统一数据格式等。 处理缺失值:可以删除包含缺失值的数据行,或

    2024年02月09日
    浏览(32)
  • 数据分析面试题(11~20)

    ①职责是收集、处理和分析大量的数据,并从中提取出有用的信息。 ②工作范围包括数据清洗、数据建模、数据可视化等。 数据收集和清洗:收集各种来源的数据,并清洗、转换为可分析的格式。 数据分析和建模:应用统计学、机器学习和数据挖掘技术对数据进行分析和建

    2024年03月26日
    浏览(38)
  • Python数据分析案例11——灰色预测法预测时间序列数据

    本次案例来自2022华为杯第E题,第2小问。给定了2012.01-2022.03的土壤湿度的月度数据,需要预测2022.04-2023.12的土壤湿度的月度数据。典型的时间序列预测。 传统的时间序列预测肯定是ARIMA模型,可以参考我之前的文章。Python统计学10——时间序列分析自回归模型(ARIMA) 现在流行的

    2024年02月06日
    浏览(46)
  • 【数据结构】时间复杂度(详细解释,例子分析,易错分析,图文并茂)

    🎊专栏【数据结构】 🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。 🎆音乐分享【星辰大海】 大一同学小吉,欢迎并且感谢大家指出我的问题🥰    目录 ⭐时间复杂度分类 🍔 方法 🎈平方阶 🎈立方阶  🎈对数阶 🍔例子 ✨常数时间复杂度 O(1) 🎈数组读取、索引和

    2023年04月20日
    浏览(41)
  • ARIMA模型时间序列数据分析(附python代码)

    ARIMA模型建模流程  1 )平稳性检验与差分处理 我们选取原始数据 bus 中的“ prf_get_person_count ”列,并截取前 32 个站点的数据进行平稳性检验,这里采用的是 ADF 检验确定数据的平稳性,导入 statsmodels 包下的 adfuller 函数,该函数返回 adf 值与概率 p 值。若原始序列不平稳,就

    2024年02月01日
    浏览(42)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包