如何在 where 子句中使用 row_number

2023-12-29

我正在尝试使用窗口函数来获取最近的 n 条记录,如下从这里 https://stackoverflow.com/questions/61570170/something-like-select-distinct-on-but-for-n-1/61570644#61570644:

I have:

select 
   id,
   blah,
   row_number () over (
     partition by blah, my_id
     order by datetime) rn,
   theme
from documents
where theme = 'cats';

我得到:

 id | blah | rn | theme 
----+-----+----+-------
  1 |   1 |  1 | cats
  2 |   1 |  2 | cats
  3 |   1 |  3 | cats
  4 |   1 |  4 | cats
  5 |   1 |  5 | cats
  9 |   2 |  1 | cats
  8 |   2 |  2 | cats
 11 |   3 |  1 | cats
 12 |   4 |  1 | cats
 13 |   5 |  1 | cats
 14 |   6 |  1 | cats
(11 rows)

这太棒了。但我想要不超过2行,rn <= 2, 例如。我把这想象成这样:

select 
   id,
   blah,
   row_number () over (
     partition by blah, my_id
     order by datetime) rn,
   theme
from documents
where theme = 'cats' and
rn <= 2;

但我得到:

ERROR:  column "rn" does not exist
LINE 15: rn <= 1;
         ^

我知道我可以将其设置为像链接问题一样的子查询,但是我必须缺少将 row_number 放入 where 子句中的语法,对吧?它是什么?


您需要一个派生表:

select id, blah, them
from (
  select id,
         blah,
         row_number () over (partition by blah, my_id order by datetime) rn,
         theme
  from documents
) x
where theme = 'cats' 
and rn <= 2;

这基本上是语法糖,不会导致性能开销。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 where 子句中使用 row_number 的相关文章

  • 用数字 1-1000 填充 Postgres 数据库?

    我是 pgAdmin3 的新手 我想用数字 1 1000 填充 pgAdmin3 中的数据库 我该怎么做呢 目前 我创建了一个名为 MyDatabase 的数据库 其中没有任何内容 每行应与其数值相对应 第 1 行应包含 1 第 2 行应包
  • 我可以以编程方式配置 PostgreSQL 以不消除全文搜索中的停用词吗?

    我正在使用 PostgreSQL 全文搜索来进行项目 其中传统停用词 a the if 等 应该被索引和可搜索 这不是默认行为 例如 我可能希望我的用户找到查询 to be or not to be 的结果 The 文档 http www
  • PostgreSQL:比较 json [重复]

    这个问题在这里已经有答案了 众所周知 目前 PostgreSQL 还没有方法来比较两个 json 值 比较就像json json不起作用 但是选角呢json to text before Then select x a y b json t
  • 随机数据库与 AWS 中的 Django 和 Postgresql 断开连接

    我试图找出 Django 和数据库连接错误问题的根源 此时 我正在调试提示 因为我认为症状太不具体 一些背景 我一直在使用这个堆栈 在 AWS 中部署了很多年 没有出现任何问题 Ubuntu 在本例中为 20 04 LTS Nginx Uw
  • Ubuntu 12.04 上的 DeepDive 安装指南

    在拥有以后很多问题 https stackoverflow com questions 22469188 deepdive installation postgresql error安装深潜项目 http deepdive stanford
  • 计算包含字母/数字的行数

    我想要实现的目标很简单 但是解释起来有点困难 我不知道在 postgres 中这是否真的可能 我处于相当基础的水平 SELECT FROM WHERE LEFT JOIN ON HAVING 等等基本的东西 我正在尝试计算包含特定字母 数字
  • 手动更改postgresql中查询的执行计划?

    是否可以在postgresql中手动更改执行计划的操作顺序 例如 如果我总是想在过滤之前进行排序操作 尽管这在 postgresql 的正常使用中没有意义 是否可以通过例如手动强制执行该操作改变运营的内部成本 如果我实现自己的功能呢 是否可
  • PostgreSql“运行安装后步骤...数据库集群初始化失败”

    我是一名 Windows 用户 我花了几个小时不断地安装和卸载 然后才使其正常工作 前 10 次左右才看到标题中的错误消息 我将其作为一个自我回答的问题放在这里 以防止其他人在安装时可能遇到同样的问题 并为像我这样第一次使用 Postgre
  • 使用转义换行符和回车符取消转义字符串

    我正在尝试编写一个 PLPGSQL 函数来混淆 审查 编辑文本 Obfuscate a body of text by replacing lowercase letters and numbers with symbols CREATE
  • PostgreSQL:使用for循环迭代表行,根据当前行检索列值

    我有以下2张表 CREATE TABLE salesperson t salespersonid numeric 4 0 NOT NULL salespersonname character varying 25 salespersonte
  • 如何创建不返回任何内容的函数

    我想写一个函数pl pgsql 我在用着Postgres 企业管理器 v3并使用 shell 来创建一个函数 但在 shell 中我必须定义返回类型 如果我不定义返回类型 我将无法创建函数 如何创建一个不返回结果的函数 即创建一个新表的函数
  • 从 Django 调用 Postgres SQL 存储过程

    我正在开发一个带有 Postgresql 数据库的 Django 项目 我编写了一个可以在 Postgres 上完美运行的存储过程 现在我想从 Django 1 5 调用该存储过程 我已经编写了代码 但它提示错误 CREATE FUNCTI
  • 部分唯一索引不适用于冲突子句 PostgreSQL

    表结构 create table example a id integer b id integer c id integer flag integer 部分索引 create unique index u idx on example a
  • 使用 NLog .NET Core 将日志记录到 PostgreSQL DB

    我尝试将日志记录集成到 NET Core 中的数据库 我能够设置 NLog 并将消息记录到 SQL Server 这很容易 但是当我尝试将 DB 切换到 PostgreSQL 时 似乎没有记录任何内容 以下是startup cs中的代码 p
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • Django 模型:默认日期时间未转换为 SQL CURRENT_TIMESTAMP

    我正在使用 Django 模型创建 PostgreSQL DB 我有一个 DateTimeField 我想将当前时间戳设置为默认值 我知道有多个消息来源建议如何做到这一点 但是 当我在 Django 之外检查数据库时 默认时间戳不会显示 我
  • PostgreSQL 错误 42501:架构权限被拒绝

    我正在 ASP NET 中构建一个用户注册系统 使用 PostgreSQL 数据库来维护用户信息 作为注册过程的一部分 用户会收到一条确认消息 他们必须单击其中的链接来验证其电子邮件地址 然后 他们将进入一个可以创建密码的页面 一旦用户提供
  • SQL查询查找具有特定数量关联的行

    使用 Postgres 我有一个架构conversations and conversationUsers Each conversation有很多conversationUsers 我希望能够找到具有确切指定数量的对话conversati
  • JPA 支持查询 Postgres JSON 字段

    JPA 是否已经支持处理 JSON 字段的查询 如下所示 select from person where info gt gt age numeric 40 select from person where info gt gt firs
  • “WHERE”处或附近的语法错误

    创建 postgres 函数时会导致错误 如下所示 错误 WHERE 处或附近的语法错误 第 19 行 其中 s shift id shiftid 错误 错误 WHERE 处或附近的语法错误 SQL状态 42601 人物 108 请帮忙 C

随机推荐

  • Python 提交表单并获得响应

    我的一般问题 我如何提交表单 然后使用 python 程序从网站获取响应 我的具体情况 我想发送一些东西 比如 Ajax XHR 发送到一个 Web 文件并从中获取响应 但有问题 我不想使用任何浏览器并在代码中执行此操作 例如this ht
  • 使用 Rest API 从 LogAnalytics Workspace 获取日志数据

    I am trying to fetch log data from Azure Log Analytics workspace with the queries that I have saved inside the workspace
  • 使用 EntityFramework Extended 批量插入

    根据this https code msdn microsoft com entity framework batch 994cd739 可以使用以下代码在实体中批量插入 var customers GetCustomers db Cust
  • FacebookShare 更新后导致编译器错误

    我刚刚跑了pod update对于我的应用程序 现在它无法编译 给出这些问题LinkShareContent swift in FacebookShare Cannot assign to property contentDescripti
  • C++ 运行时通过字符串名称访问成员函数

    我有两节课 class MyClassInfo public void AddMethod std string name void pointer I don t know what signature should be class M
  • 重命名 auth_user 会破坏新设置的迁移

    遵循看起来像好建议 https stackoverflow com questions 14904046 migrating existing auth user data to new django 1 5 custom user mod
  • 获取 Active Storage 变体的元数据

    我有一个 Active Storage 图像变体 例如 我正在尝试获取width and height该变体的值 因为它们是未知的 用于width and heightHTML 属性 我预计他们会在这里 model logo image v
  • 使用 xslt:analyze-string 将首字母缩略词添加到 HTML

    我想使用 xslt analyze string 将首字母缩略词添加到 HTML 文本中 问题 在我的 HTML 文本中有诸如 strong some text strong 被视为 XML 节点 当我应用 xslt analyze str
  • 我无法启用推送通知参数

    我三个月前创建了一个应用程序 并已成功批准进入 itunes 我需要做出的改进之一是包括 推送通知 问题是 当我尝试在developer apple com 的 App ID 中编辑该参数时 复选框被禁用 我无法检查它 这是他们告诉我们应该
  • 底部应用栏在使用片段导航时向上/向下滑动(导航架构组件)

    我正在查看底部应用程序栏 有一个很好的功能可以在滚动时隐藏它app hideOnScroll true 问题是我无法弄清楚当片段被删除时如何以编程方式向上或向下滑动它导航至和来自 例如 设置概述 开MainActivity具有导航主机片段
  • Fortran 中任何类型数组的过程

    Basis 我想编写一个过程 对任何输入数组类型进行一些操作 integer real 4 real 8 我在 StackOverflow 上读到的唯一想法是模仿 C 模板 使用通用过程进行覆盖 使用预处理器包含重复代码 但是搜索流行的I
  • 内存泄漏、访问已释放的内存和双重释放之间有什么区别?

    我试图找出与内存模型相关的这三种问题之间的区别 如果我想模拟一个memory leak场景中 我可以创建一个指针而不调用相应的删除方法 int main OK int p new int delete p Memory leak int q
  • 如何更改 conemu 中的字符集/区域设置?

    我通过 conemu 使用 gitbash 我有一个字符集问题 其中字符在 git bash 中通过 conemu 和直接 git bash 看起来错误 我通过将 minttyrc 中的区域设置设置为 在 gitbash 中修复了它 Bol
  • 何时使用嵌入式数据库

    我正在编写一个应用程序 它解析一个大文件 生成大量数据并用它进行一些复杂的可视化 由于所有这些数据无法保存在内存中 因此我做了一些研究 并开始考虑将嵌入式数据库作为这些数据的临时容器 我的问题是 这是解决这个问题的传统方法吗 嵌入式数据库
  • 命名约定:寻找混合英语和领域/工作流术语的替代方案

    尽管在我们公司 所有人的母语都不是英语 但我们还是努力用英语编写文档 代码和注释 当然 除了与用户相关的内容之外 几乎所有内容都是如此 只要业务术语是可翻译的并且不太特定于该领域 这就可以了 但是 一旦业务术语变得过于具体 要么没有适当的翻
  • Apache 重写子网 IP 范围

    有人可以告诉我如何将以下 IP 范围 属于 Cloudfront 放入 mod rewrite 中吗 我希望将 example com 的非 www 请求重定向到 www example com 但不重定向来自以下 IP 范围的任何 IP
  • 为什么我必须刷新页面才能使 JavaScript 函数正常工作?

    我正在开发一个移动网站并使用 jQuery 当我加载某个页面并单击所需的按钮时 代码在刷新页面之前不会执行 为什么是这样 我是这样的 script js document ready function user save click fun
  • CAShapeLayer 的中风结束没有动画

    这是我用来制作动画的代码CAShapeLayer progressBarLayer strokeEnd CGFloat progressToDrawForProgress progress let progressAnimation CAB
  • 将 git 存储库复制到 USB 驱动器

    我正在开发一个开源项目 我的机器上有一个包含所有代码的 git 存储库 该存储库有点大 我想在无法访问我的计算机时继续处理它 如果我将存储库复制到我的 USB 驱动器中 它的行为是否仍然像我在计算机中的原始存储库上一样 相同的配置等 如果复
  • 如何在 where 子句中使用 row_number

    我正在尝试使用窗口函数来获取最近的 n 条记录 如下从这里 https stackoverflow com questions 61570170 something like select distinct on but for n 1 6