在 MySQL 中的 Grouped by 查询期间获取时差

Posted

技术标签:

【中文标题】在 MySQL 中的 Grouped by 查询期间获取时差【英文标题】:Get time difference during a Grouped by query in MySQL 【发布时间】:2021-02-01 01:09:00 【问题描述】:

如何在我的 SQL 查询期间获取第一行和最后一行之间的时间?

数据如下:

|--------|-----------|---------------------|
| EST_Id | EST_Token | EST_Datetime        |
|--------|-----------|---------------------|
|      1 |     vexef | 2020-10-17 16:13:01 |
|      2 |     vexef | 2020-10-17 16:13:21 |
|      3 |     vexef | 2020-10-17 16:14:31 |
|      4 |     vexef | 2020-10-17 16:13:51 |
|      5 |     fardd | 2020-10-17 17:00:11 |
|      6 |     fardd | 2020-10-17 17:00:17 |
|      7 |     fardd | 2020-10-17 17:00:19 |
|--------|-----------|---------------------|

例如对于令牌vexef,我应该有 50 秒。

这是我尝试过的:

SELECT *, TIMEDIFF(MAX(EST_Datetime), MIN(EST_Datetime))  AS diff FROM table GROUP BY EST_Token ORDER BY EST_Id ASC

查询看起来有效,但 diff 返回我 0

谢谢。

【问题讨论】:

【参考方案1】:

你似乎想要聚合:

select est_token, timestampdiff(second, min(est_datetime), max(est_datetime)) diff
from mytable
group by est_token

这为每个est_token 提供一行,最早和最新est_datetime 之间的差异以秒为单位。

【讨论】:

以上是关于在 MySQL 中的 Grouped by 查询期间获取时差的主要内容,如果未能解决你的问题,请参考以下文章

在 SQL 中选择具有 MIN(计算排名)和 GROUPed BY 不同列的行时性能不佳

Hierarchy and examples of programming languages grouped by concepts --编程语言分类

seaborn可视化绘制双变量分组条形图(Annotating Grouped Barplot: Side-by-side)添加数值标签进行标记

R语言ggplot2可视化因子分组并排条形图柱状图可视化添加误差条:barplot with several variables side by side grouped by a factor

Python使用seaborn可视化分组条形图(side by side)并且在分组条形图的条形上添加数值标签(seaborn grouped bar plot add labels)

Django Average 和 Group By 中的 MYSQL 等效查询