![](/img/trans.png)
[英]PostgreSQL: Select only the first record per id based on sort order
[英]How to add an ordinal id field based on a sort order in PostgreSQL
我想知道如何基於對某些字段(例如ISO
代碼)的排序將字段添加到表(例如country
)中?
我搜索了SO,發現以下問題 ,但是解決方案基於MySQL。 我嘗試在Postgres 9.3中使用該解決方案,這給了我:=
的語法錯誤。 我試過的是:
SELECT l.*,
@curRow := @curRow + 1 AS row_number
FROM country l ORDER BY ISO
JOIN (SELECT @curRow := 0) r;
如何適應Postgres?
您可以使用row_number()
窗口函數 :
SELECT country.*, ROW_NUMBER() OVER (ORDER BY iso)
FROM country
ORDER BY iso
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.