- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一张表,其中列出了某些对象的事件。
有两个事件:“移动”和“加载”。它们可以开始也可以结束,并且这些事件在发生时带有时间戳。
通过以下请求,我可以获得以下值:
sum of time, when movement took place (value in the fiddle: 421)
sum of time, when load took place (value in the fiddle: 520)
sum of time, when movement and load took place (value in the fiddle: 391)
当前版本每天计算这些数字,效果很好。
http://sqlfiddle.com/#!2/518dd/1
但我也会有不同的 ID。我现在想为每一天和每个 ID 计算这些数字。当我添加这些数据时,它崩溃了,请看这个 fiddle :
http://sqlfiddle.com/#!2/b43fa/6
这不是这个问题的重复:Find intersections between rows and timestamps in a mysql db ,因为这个问题的解决方案在这种情况下不合适/不适应。
最佳答案
如 Gordon 所示,通过将过滤移动到最外层的 SELECT
可以实现分组。搜索需要包含移动事件的加载事件的方式与 earlier answer 中的方式相同。 :
SELECT id,
date(timestamp, 'unixepoch') AS date,
(SUM(CASE WHEN event = 'movement end' THEN timestamp END) -
SUM(CASE WHEN event = 'movement start' THEN timestamp END)
) AS all_movement,
(SUM(CASE WHEN event = 'load end' THEN timestamp END) -
SUM(CASE WHEN event = 'load start' THEN timestamp END)
) AS all_load,
(SUM(CASE WHEN event = 'movement end' AND
(SELECT event
FROM Table1 b
WHERE timestamp = (SELECT MIN(timestamp)
FROM Table1 c
WHERE c.timestamp >= a.timestamp
AND c.id = a.id
AND c.event LIKE 'load %')
AND b.id = a.id
AND b.event LIKE 'load %'
) = 'load end'
THEN timestamp END) -
SUM(CASE WHEN event = 'movement start' AND
(SELECT event
FROM Table1 b
WHERE timestamp = (SELECT MAX(timestamp)
FROM Table1 c
WHERE c.timestamp <= a.timestamp
AND c.id = a.id
AND c.event LIKE 'load %')
AND b.id = a.id
AND b.event LIKE 'load %'
) = 'load start'
THEN timestamp END)
) AS load_movement
FROM Table1 a
GROUP BY id,
date(timestamp, 'unixepoch')
关于mysql - 查找 mysql 数据库中不同行的时间戳之间的重叠,按天数和 ID 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15114811/
给定一个带有多个 date_time 戳的字符串,我想 提取第一个戳及其前面的文本 候选字符串可以有一个或多个时间戳 后续的 date_time 戳记将被 sep="-" 隔开 后续date_time
是否可以合并从相机拍摄的文本和照片?我想在照片上标记日期和时间,但我在 Google 上找不到任何内容。 最佳答案 使用下面的代码来实现你所需要的。 Bitmap src = Bitm
有没有办法通过 Graph API 戳另一个用户?基于this post ,并使用 Graph Explorer ,我发布到“/USERID/pokes”,我已经授予它(Graph API 应用程序和
我有两个向左浮动的元素。一个是 body 的第一个 child ,另一个是容器的第一个 child ,容器是 body 的第二个 child 。 ...
我是一名优秀的程序员,十分优秀!