我有一個Postgresql數據庫,並且我無法正確地查詢我的查詢,儘管這看起來像是一個常見問題。從數據庫中的每個用戶獲取最後一個條目
我的表看起來像這樣:
CREATE TABLE orders (
account_id INTEGER,
order_id INTEGER,
ts TIMESTAMP DEFAULT NOW()
)
每當有一個新的秩序,我用它來鏈接account_id
和order_id
。
現在我的問題是,我想要獲得最後一個訂單的列表(通過查看ts
)爲每個帳戶。
例如,如果我的數據是:
account_id order_id ts
5 178 July 1
5 129 July 6
4 190 July 1
4 181 July 9
3 348 July 1
3 578 July 4
3 198 July 1
3 270 July 12
然後我想查詢只返回最後一排爲每個帳戶:
account_id order_id ts
5 129 July 6
4 181 July 9
3 270 July 12
我試過GROUP BY account_id
,並我可以使用它爲每個帳戶獲得MAX(ts)
,但是我無法獲得關聯的order_id
。我也嘗試了子查詢,但我似乎無法做到。
謝謝!
你必須有一些主鍵,所以使用'LIMIT 1'和'ORDER BY ID DESC'。它顛倒了順序並將其限制爲1(所以最高的ID是第一個結果,限制則只有這1個結果)。 –
試試看這裏:http://stackoverflow.com/questions/331367/sql-statement-help-select-latest-order-for-each-customer –
@Rajat我不想只是一排,我想要一排爲每個account_id。 – gattoo