【发布时间】:2015-03-03 01:27:04
【问题描述】:
我在桌子上是这样的:
ID | UID | ACTION | URL | TIMESTAMP
在哪里...
ID - primary key
UID - user id
ACTION - IN or OUT
URL - action URL
TIMESTAMP - action TIMESTAMP
如何通过一次查询聚合所有数据?
我的意思是...作为输出,我想要带有UID、URL、TOTAL_TIME 的表格,其中TOTAL_TIME 将是给定URL 的IN 和OUT 之间所有时间的总和。 .
我尝试了一些自定义函数,但没有运气......
示例输入(时间戳简化以显示我的意思):
1|13|IN|http://www.gógle.koń|1
2|13|OUT|http://www.gógle.koń|5
...
13454|13|IN|http://www.gógle.koń|550
...
13465|13|OUT|http://www.gógle.koń|600
...
243252|13|IN|http://www.pr0nstaff.meh|tiny_leg_finger|1200
...
245431|13|OUT|http://www.pr0nstaff.meh/tiny_leg_finger|2200
请注意,IN - OUT 中的一个 URL 可能会被 IN 或 IN - OUT 或 OUT 或其他的 OUT 破坏
...所以我们不能在不检查站点匹配的情况下简单地从 IN 计数到 OUT。
例如输入(UUID = 13)的输出应该是:
13|www.gógle.koń|14
13|http://www.pr0nstaff.meh/tiny_leg_finger|1000
【问题讨论】:
-
主要问题是速度,而不是解决方案本身......那里有大约 30GB 的数据......
标签: mysql sql datetime select group-by