我有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(東西),並且看看發生在哪一年。 (我沒有寫在我的代碼計數,只是一個例子) –