我仍在学习 PostgreSQL 的技巧和技巧。我需要一种获取数据并为我提供每个数据集的前 100 行的方法。
我的问题:
我在服务器上有一个包含 60 多个列的表。一列包含国家/地区。我需要按字母顺序按每个国家/地区获得前 100 行的分割。
此表中有 70 个国家/地区。所以总结果应该是 7,000。我该如何分解?
最佳答案
使用 ROW_NUMBER 解析函数:
CREATE VIEW my_View AS
SELECT col1, col2, col3, ...... col60
FROM (
SELECT *,
row_number() over (Partition by country ) as Rn
FROM table
) x
WHERE rn <= 100
ORDER BY country
以上将为每个国家/地区提供 100 条随机记录。如果您不想要这样的随机性,那么请以这种方式使用 ORDER BY some_column
子句:
row_number() over (Partition by country ORDER BY country) as Rn
关于sql - 创建一个 View ,其中 PostgreSQL 显示特定字段的前 100 行,然后移动到下一个,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47441276/