我有id
,year
和count
表。PostgreSQL的MAX和GROUP BY
我想要得到的MAX(count)
每个id
并保持year
当它发生,所以我提出这个查询:
SELECT id, year, MAX(count)
FROM table
GROUP BY id;
不幸的是,它给了我一个错误:
ERROR: column "table.year" must appear in the GROUP BY clause or be used in an aggregate function
所以我尝试:
SELECT id, year, MAX(count)
FROM table
GROUP BY id, year;
但是然后,它d没有做MAX(count)
,它只是显示表格。我想,因为当由year
和id
分组时,它获得该特定年份的id
的最大值。
那么,我该如何编写该查询?我想获得id
的MAX(count)
以及发生这种情况的年份。
如果{id,year}是唯一的,'max(thing)'与'thing'相同。另外请注意,“count”是一个关键词,(以及一些方言中的年份,IIRC) – wildplasser
您想要每个ID使用哪一年?没有“今年”,有更多的,也许你想'MAX(年)'? – mata
是的,他们是独一无二的,所以我得到了东西。我想获得ids MAX(东西),并且看看发生在哪一年。 (我没有写在我的代码计数,只是一个例子) –