0
我在我的數據庫中有一個表,我正在使用SQL查詢從中檢索數據。在我的查詢中,我正在替換一些文本並使用整數。該查詢返回下面的數據:如何根據時間戳和使用SQL的唯一ID爲每一行數據選擇最大值?
user_id | event_code | total_bookmarks | total_folders | folder_depth | ts
0 8 34 6 1 128926
0 8 35 6 1 129001
4 8 18 2 1 123870
6 8 30 2 1 130099
6 8 30 2 1 132000
6 8 30 2 1 147778
查詢我使用的是:
SELECT
user_id,
event_code,
CAST(REPLACE(data1, 'total bookmarks', '') AS INTEGER) as total_bookmarks,
CAST(REPLACE(data2, 'folders', '') AS INTEGER) as total_folders,
CAST(REPLACE(data3, 'folder depth ', '') AS INTEGER) as folder_depth,
timestamp AS ts
FROM events
WHERE event_code = 8
我需要什麼,以便添加到我的查詢,只選擇行對每個唯一的user_id與每個ID的最大值(時間戳)?我嘗試了MAX(timestamp),但是如果total_bookmark不同,我會得到兩個相同ID的行(例如:user_id 0,其中一行34,而另一行35)我想讓表看起來像這樣:
user_id | event_code | total_bookmarks | total_folders | folder_depth | ts
0 8 34 6 1 129001
4 8 18 2 1 123870
6 8 30 2 1 147778
爲什麼會用'mysql'和'postgresql'標記? – shmosel
因爲我正在使用postgresql,但我認爲這可以用相同的方式或以與mysql類似的方式完成 – cjh193
請不要這樣做。你浪費自己的時間和其他人的時間。 – shmosel