【发布时间】:2018-08-24 10:50:13
【问题描述】:
我有一个 SQL 表活动,其中包含两个字段:started_at、end_at,每个字段是一个 Datetime 列和一个 plane_id 字段。
我们将区间“end_at - started_at”称为持续时间。
我的目标是,对于每个planet_id,获取特定时期内每个活动的间隔总和。
基本上是这样的
SELECT SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(ended_at, started_at))))
FROM activity
WHERE started_at > :started_at
AND ended_at < :ended_at
GROUP BY airplane_id
问题是我的处理时间可能超过了最大时间大小(大约 838 小时),我正在寻找一种有效的解决方法。
在放弃并只提取原始数据并在 PHP 中处理它们之前,我希望一些 SQL 天才可以拯救我。
最好的问候,
【问题讨论】: