查询最大和第二因素

时间:2015-09-25 10:17:08

标签: sqlite greatest-n-per-group

我有:

MESSAGES table
message_id | conversation_id | from_user | timestamp  |  message

我想:

  1. SELECT * WHERE from_user <> id
  2. GROUP BY conversation_id
  3. SELECT在每个组中MAX(timestamp)行 - 如果组中有相同的时间戳,请使用第二个因子作为最高message_id
  4. 然后对结果ORDER BY timestamp
  5. 进行排序

    得到结果:

    2|145|xxx|10000|message
    6|1743|yyy|999|message
    7|14|bbb|899|message
    

    已淘汰

    1|145|xxx|10000|message 
        (has the same timestamp(10000) as message(2) of the same conversation(145) 
        but message id is lowest)  
    5|1743|me|1200|message 
        (has `message_from = 'me'`)
    

    具有相同时间戳的示例组

    enter image description here

    我希望从第3组开始,但是从下面的查询中得到第2行:

    SELECT max(message_timestamp), message_id, message_text, message_conversationId
    FROM MESSAGES
    WHERE message_from <> 'me'
    GROUP BY message_conversationId
    ORDER by message_Timestamp DESC
    

    我的想法是unionmessage_id timestamp然后获得最大值。如果这是个好主意,我该如何实现呢?

0 个答案:

没有答案