假设我有一个表“订单”创建为:
CREATE TABLE orders (id SERIAL,
customerID INTEGER,
timestamp BIGINT,
PRIMARY KEY(id));
Timestamp 是 UNIX 时间戳。现在我想为每个客户选择最新订单的 ID。作为一个视图会很好。
但是下面的语句
CREATE VIEW lastOrders AS SELECT id,
customerID,
MAX(timestamp)
FROM orders
GROUP BY customerID;
导致 postgre 错误:
错误:列“orders.id”必须出现在 GROUP BY 子句中或在聚合函数中使用
我究竟做错了什么?