所以我的数据库中有两个表,它们都看起来像这样:
通讯:(已拨打电话)
Timestamp FromIDNumber ToIDNumber GeneralLocation
2012-03-02 09:02:30 878 674 Grasslands
2012-03-02 11:30:01 456 213 Tundra
2012-03-02 07:02:12 789 654 Mountains
移动:
Timestamp IDNumber Type X Y
2012-03-02 11:02:30 379 pedestrian 32 46
2012-03-01 12:32:41 654 pedestrian 54 56
2012-03-02 07:02:16 789 pedestrian 39 52
我想做的是找到最接近给定“通信”时间戳的“移动”时间戳。基本上,我想找到一个人打电话时可能去过的地方。
目前,我这样做是:
SELECT
movement.timestamp,
movement.x,
movement.y
FROM movement
WHERE (movement.IDNumber=789 AND movement.timestamp>='2012-03-02 07:02:12')
ORDER BY movement.timestamp LIMIT 1;
输出将是:
timestamp x y
2012-03-02 07:02:12 39 52
我将呼叫者的IDNumber
和设置timestamp
到的FromIDNumber
位置,然后timestamp
他们拨打了电话。因此,这将找到一个呼叫者的可能位置。
在这种情况下,789
打电话到07:02:12
,并且他的移动数据07:02:16
表明他的位置在(39,52)
。这样一来,它就会显示在他可能的位置,因为只有4秒钟之后。
但是,如何对Communication表中的每个呼叫运行该特定查询,而不必手动填写每个查询?
例如,然后,将为通信表的所有行计算位置,而不是仅针对一次呼叫进行计算,例如:
timestamp x y
2012-03-02 07:02:12 39 52
2012-03-02 03:15:14 23 34
2012-03-02 05:06:07 34 55
2012-03-02 02:41:21 12 56
...
等等。
我尝试将某些东西与java.sql一起使用,但是事情变得有些复杂,我想知道是否有更简单的方法。我该如何解决这个问题?
问题是我刚刚开始学习SQL,所以我真的不确定在这里做什么。我看了一些其他的SO帖子,但它们全都用于sql-
server,而我却真的听不懂。任何帮助将不胜感激,谢谢!
试试这个:
SELECT c.FromIDNumber, m.Timestamp, m.X, m.Y
FROM Communication c
JOIN Movement m ON c.FromIDNumber = m.IDNumber
WHERE m.TimeStamp = (SELECT MIN(mm.Timestamp)
FROM Movement mm
WHERE mm.TimeStamp >= c.TimeStamp)
您可以使用此 SQL Fiddle 来测试不同的数据组合。
问题内容: 我有一个包含两列,ID和XML数据的表。我想为每个ID切碎XML。我在XML中提取了一个值,并且所有XML的结构都相同,但我不确定如何在表中循环并将XML查询应用于每行。 我需要应用的查询如下: 因此,最终结果将具有两列,即ID和XML的切碎值。 问题答案: 没有关于您的实际XML以及如何粉碎它以获取一些值的任何知识,就不可能完整地回答,但这应该为您指明了正确的方向: 照 原样 返回I
问题内容: 我正在编写一个SQL查询以获取Report Builder 3.0中报表的参数列表。我需要在结果中添加一个额外的行,其值为“ All”,如下所示: 效果很好,但是查询返回的行以字母顺序排序,实际上我一直希望“全部”始终出现在顶部(即返回第一行)。其余结果可以按字母顺序排序。 我已经看到有关向表中添加排序顺序列的建议,但是我对SQL还是很陌生,并且不知道如何执行此操作。 感谢您的任何建议
问题内容: 这是一个示例代码: 因此,这个位于productOrderContainer中的表有几列,根据几件事,将有几行,每行都有几列。一个例子是: 我想做的是例如获取此表的第一行。(行具有ID ,例如:),然后再次在该行跨度中寻找特定值 所以在伪代码中我想说的是: 给我桌子,给我第n行,给我值 问题答案: 您可以尝试关注 您还可以遍历表行以执行所需的任何功能。
问题内容: 我有这个SQL查询: 这将导致类似于以下的输出: 我想每个Foo仅保留第一行,而忽略其余的行。 我怎么做? 问题答案:
我试图从另一个表中创建一个子表,其中所有的姓氏字段排序为A-Z,其中有一个电话号码字段不是null。我可以用SQL很容易做到这一点,但是我不知道如何在Excel中运行SQL查询。我很想将数据导入postgresql,然后在那里查询,但这似乎有点过分。 对于我正在尝试做的事情,SQL查询可以做到这一点。这似乎太简单了,因为它是Excel本地无法完成的事情。如何在Excel中运行这样的SQL查询?
问题内容: 我想选择总计为特定值的行。 我的SQL(SQL Fiddle): 它应该计算总和为410000并获取行。同时它应该得到这样的东西: 如您所见,42552 + 367225 =409777。它选择了两行,总行数接近410000。 我已经尝试了一切,但是没有用:( 对不起,我的语言,我是德语。 问题答案: 您可以使用相关子查询来获取运行总计,并检索其运行总计小于指定数量的行。(请注意,我将