0

在下表中,我不确定如何执行此操作,但如何编写返回每个唯一电话号码的最新行的查询?

PhoneNumber    MessageText               ReceiveTime        
-------------  ------------------------  -------------------
+639148186649  Delivery please           2013-03-19 01:12:55
+639148186649  I need this item          2013-03-22 02:15:01
+639148186649  I need more of this item  2013-03-23 12:01:02
+639194357455  How much for this...      2013-03-24 16:36:33
+639194357455  What time do you open?    2013-03-24 17:55:07
4

3 回答 3

1

我找到了答案!

SELECT s1.PhoneNumber, s1.MessageText, s1.ReceiveTime FROM mytable s1 LEFT JOIN mytable s2
    ON (s1.PhoneNumber = s2.PhoneNumber AND s1.ReceiveTime < s2.ReceiveTime)
    WHERE s2.ReceiveTime IS NULL ORDER BY ReceiveTime DESC
于 2013-03-29T23:48:08.817 回答
0

I think this should work...

SELECT *
FROM PhoneTable
GROUP BY PhoneNumber
HAVING ReceiveTime = MAX(ReceiveTime)
ORDER BY ReceiveTime

..or you may have to do something like this...

SELECT PhoneNumber, MessageText, ReceiveTime
FROM PhoneTable t
WHERE ReceiveTime = (SELECT MAX(ReceiveTime)
                     FROM t
                     GROUP BY PhoneNumber
                     HAVING PhoneNumber = t.PhoneNumber)
于 2013-03-29T23:03:54.917 回答
0

您不能按一列分组并返回不依赖于该组的其他列。有关一些提示,请参阅此问题的答案。

于 2013-03-29T22:51:27.110 回答