我正在为应该是一个简单的SQL查询的东西而苦恼。
这是我的初始数据库架构:
中准备了示例我最终遇到的查询是:
select
b.ad_id,b.auction_id,max(b.amount) as max,max(b.created_at) created_at
from bid b
where b.user_id = '601'
group by b.ad_id,b.auction_id
但是结果是,我需要bid
表中的整行:
select
b.id,b.ad_id,b.auction_id
哪个失败:[42803] ERROR: column "b.id" must appear in the GROUP BY clause or be used in an aggregate function Position: 16
。无法在GROUP BY子句中添加id
字段,因为它将添加一些我不需要的额外行。
我需要从bid
表中选择按auction_id和ad_id分组的最高记录(金额字段)。
我认为我需要进行一些自我内部联接或子选择,但是现在我无法编写SQL。