如何在SQL中查找给定数量的行?

时间:2014-11-19 02:24:30

标签: sql database loops unix-timestamp

所以我有一个类似于

的数据表

enter image description here

每行在Unix时间内都有一个时间戳列。我需要找到具有相同resource_id的两个条目的所有地方x是(日月,年等)相隔的时间量,所以我需要一个查询,将查看一行和下一行之间的差异并吐支持相差超过指定金额的那些。

有人对如何做到有什么想法吗?提前致谢

1 个答案:

答案 0 :(得分:0)

您可以使用交叉连接将表格中的每一行与表格中的每一行进行比较,然后比较该字段。例如,以下将返回两行相隔2个月的位置。

SELECT t.resource_id, s.resource_id
FROM table t CROSS JOIN table s
WHERE TIMESTAMPDIFF(MONTH,t.timestamp,s.timestamp) = 2

请注意,如果表格很大,这可能会非常慢。或者根据MySQL docs只是说JOIN而不指定条件会产生相当于交叉连接的笛卡尔积。