我有一个非常简单的表(用于演示目的)
CREATE TABLE t1 (id int,d1 date);
Run Code Online (Sandbox Code Playgroud)
和这个查询.
SELECT
A.id,
minA,
minB
FROM (SELECT id, MIN(d1) AS minA
FROM t1
GROUP BY id) AS A
LEFT JOIN (SELECT C.id, MIN(C.d1) AS minB
FROM t1 AS C
INNER JOIN (SELECT id, MIN(d1) AS minD
FROM t1
GROUP BY id) AS D ON C.id = D.id AND C.d1 > D.minD
GROUP BY C.id) AS B ON A.id = B.id
Run Code Online (Sandbox Code Playgroud)
基本上我试图将每个ID的两个"最低"日期值放入一行,如果ID只有一个日期则为空值.上面的查询有效,但必须有一个更好/更清洁的方法,我只是没有看到.如果重要的话,我正在使用SQL Server 2008.
所以我只是学习javascript来搞乱Google Maps API.我想知道是否有人对我遇到的这个问题有一个优雅的解决方案.
Google地图路线请求必须包含三项内容(来源,目的地和travelMode).我的travelMode将永远是驾驶.原点始终位于用户所在的位置.
但目的地需要变化.我有几个航点,用户将访问,并希望提供尽可能短的旅行,具体取决于选择的航路点和用户的位置,在其中一个航路点结束航线(例如:ABC或ACB,但始终是Axx. ..X).
除了计算每个可能的路径并查看哪个路径的最短距离(或时间,或者我正在评估的任何路径)之外,有没有其他方法可以做到这一点?这似乎是非常昂贵的(O(n!)).
编辑:将建议的optimizeWaypoints标志设置为true,这将成为O(n)问题而不是O(n!),但现在我遇到的问题是在很短的时间内发出太多请求.