我写了一个查询,允许我使用 groupwise max 方法获取最近的房间。但是我如何对多列进行分组最大值?
我有下面的查询,其中子查询为我提供了最近的房间,然后将它们与主表连接起来。现在我想选择接下来会发生的第一个事件。
例如:MIN(DATEDIFF(date, now())) > 0
SELECT name, date, t1.Room, descr, t1.D
FROM Events
JOIN
(
SELECT Roomid, Room, Latitude, Longitude,
ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) AS D
FROM Rooms
WHERE Latitude>(:minLat) AND Latitude<(:maxLat)
AND Longitude>(:minLon) AND Longitude<(:maxLon)
AND ACOS(SIN((:lat))*SIN(RADIANS(Latitude)) + COS((:lat))*COS(RADIANS(Latitude))*COS(RADIANS(Longitude)-(:lon)))*(:R) < (:rad)
) AS t1 ON Events.roomid = t1.Roomid
GROUP BY Room
ORDER BY D
有人可以告诉我如何做到这一点吗?
谢谢!
PS:该事件应该是下一个发生的事件。我不使用 ABS(MIN()) 因为这将返回已经发生的事件。