欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

mysql分組取最后一條

黃文隆2年前6瀏覽0評論

在MySQL中,有時候需要從一個表中按照某個字段進行分組,并取出每個分組中最近的一條記錄。

我們可以通過使用子查詢和MAX函數(shù)來達到這個目的。假設(shè)我們有一個記錄用戶活動的表,包含以下字段:

CREATE TABLE `activity` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) NOT NULL,
`activity_type` varchar(255) NOT NULL,
`activity_date` datetime NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8mb4;

我們想要按照用戶ID分組,并取出每個分組中最近的一條活動。可以通過以下SQL語句來實現(xiàn):

SELECT a.*
FROM activity a
JOIN (
SELECT user_id, MAX(activity_date) AS max_activity_date
FROM activity
GROUP BY user_id
) b ON a.user_id = b.user_id AND a.activity_date = b.max_activity_date;

這個SQL語句中,我們先通過子查詢得到每個用戶ID的最近活動時間,并將這個子查詢的結(jié)果和原始表連接起來,以獲取每個用戶的最近活動。

需要注意的是,這種方式如果數(shù)據(jù)量較大,查詢時會比較慢,因此最好給activity_date字段建立索引。