簡體   English   中英

在MySQL中按列分組時如何獲取最后插入的行?

[英]How to get the last inserted row when I Group by column in mySQL?

我運行此查詢可以讓我在10分鍾的時間內獲得活躍用戶。 clicks表在每個page上都有user多行。 我可以獲取user列表,但輸出旁邊的page不是最后一行,而是第一行。

這意味着如果為特定user存儲了4行,第一行是1分鍾前,第四行是8分鍾前,它將顯示第8分鍾page ,而不是第1分鍾page

如何解決呢?

SELECT user
     , page 
  FROM clicks 
 WHERE timestamp >= NOW() - INTERVAL 10 MINUTE 
 GROUP 
    BY user
 ORDER 
    BY id DESC

mysql_insert_id檢索上一個查詢為AUTO_INCREMENT列生成的ID

嘗試這個:

 select temp.*
from
(
 select user , page
 from clicks
 order by timestamp desc
) temp

group by temp.user;

這將適用於所有版本

SELECT 
    id, tc_stage_id, user
FROM
    clicks
WHERE
    id IN (SELECT 
        MAX(id)
    FROM
        clicks
    GROUP BY user)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM