sql - 创建一个 View ,其中 PostgreSQL 显示特定字段的前 100 行,然后移动到下一个

标签 sql postgresql list rows

我仍在学习 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/

相关文章:

php - MySQL查询报价等

postgresql - 将在Docker容器中运行的PostgreSQL服务器连接到Wild-fly Docker容器?

python - 为什么我不能在 python 中使用列表作为 dict 键?

sql - 如何在 SQL Server 中回滚或提交事务

sql - oracle解码的查找表?

postgresql - 外键引用唯一的复合键或单个主键

C# 访问作为对象类型传递的列表元素

c# - 我想获得相同长度的字符串的第一个和第二个字母对(通过使用 LINQ)

sql - 基本 SQL 子查询

ruby-on-rails - 无法在 Heroku 上迁移