使用 FIRST_VALUE 而不在分组依据中包含内部列

2023-12-19

我正在使用一个看起来像这样的表:

userID, eventDate, eventName
1  2019-01-01  buySoup
2  2019-01-01  buyEggs
2  2019-01-03  buyMilk
2  2019-01-04  buyMilk
3  2019-01-02  buyBread
3  2019-01-03  buyBread

我当前的查询是:

SELECT
    userID,
    FIRST_VALUE(eventName) OVER (
        PARTITION BY userID ORDER BY eventDate ASC
    ) AS firstBought 
FROM table 
GROUP BY userID

我觉得这应该返回:

userID, firstBought
1  buySoup
2  buyEggs
3  buyBread

相反,它给出了错误:

'错误:列“table.eventName”必须出现在 GROUP BY 子句中或在聚合函数中使用'

有没有办法获取这个值而不将其包含在按函数分组或创建子查询中?我正在使用 PostgreSQL。

如果我确实将其包含在 group by 子句中,它将返回

userID, firstBought
1  buySoup
2  buyEggs
2  buyEggs
2  buyEggs
3  buyBread
3  buyBread

我知道我可以将其设为子查询,然后按 userID、firstBought 进行分组,但我不想创建另一个子查询。


代替group by, use select distinct:

select distinct userID,
       FIRST_VALUE(eventName) over (partition by userID order by eventDate ASC) as firstBought 
from table ;

或者,您可以使用数组:

select userId,
       (array_agg(eventName order by eventDate))[1] as firstBought
from table
group by userId;

Postgres 没有“第一个”聚合函数,但是这个函数运行得很好。

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

使用 FIRST_VALUE 而不在分组依据中包含内部列 的相关文章

  • Linq lambda表达式多对多表选择

    我有三个表 其中两个是多对多关系 Picture 这是中间mm表中的数据 Edit 到这里 我得到正确的 4 行返回 但它们都是相同的结果 我知道我需要返回 4 行 但有不同的结果 return this mediaBugEntityDB
  • 方法“Boolean Contains(System.String)”不支持对 SQL 的转换

    方法 Boolean Contains System String 不支持对 SQL 的转换 查询是 IsQueryable 但这停止工作 foreach string s in collection1 if s Length gt 0 q
  • 在java代码中创建postgresql表

    我有一个与 postgreSQL 数据库连接的 java 代码 现在 我希望当它连接到数据库时 我还将创建数据库表 但我的问题是 它不会创建数据库 我不知道问题是什么 这是我的代码 Statement st null ResultSet r
  • 从 CTE 插入

    WITH DTL AS SELECT CMPI CODE CMN CDTY MTRL CMI WT FACTOR CMI CNTRCT RATE PL PRESENT PRICE TRM CODE ROUND NVL PRESENT PRI
  • 如何比较 Postgresql 中日期时间字段中的日期?

    在比较 postgresql Windows 中的版本 9 2 4 中的日期时 我遇到了一个奇怪的情况 我的表中有一列说update date与类型timestamp without timezone 客户可以仅使用日期搜索此字段 例如 2
  • 选择每组最新的项目[重复]

    这个问题在这里已经有答案了 可能的重复 检索每组中的最后一条记录 https stackoverflow com questions 1313120 retrieving the last record in each group 我有 2
  • Laravel 7.x eloquent addSelect 子查询来计数

    与 一起工作Laravel 7 x and Postgresql 我有一个User类和GroupPivot数据透视表 可以对多个模型进行分组 我想创建一个专栏User如果用户拥有针对该组的当前数据透视条目 则为 true 或 false 类
  • 如何从连接字符串中提取数据库名称,而不考虑 RDBMS?

    我正在研究一个不知道正在使用的 RDBMS 的课程 当然 应用程序的其余部分都清楚这一点 连接字符串是此类的输入 我需要数据库名称 无论 RDBMS 如何 如何从连接字符串中提取数据库名称 我读到以下问题 如何使用 SqlConnectio
  • 法语和西班牙语的特殊字符可以保存在 varchar 中吗?

    法语和西班牙语中有普通英语中不使用的特殊字符 重音元音等 varchar 是否支持这些字符 或者我需要一个 nvarchar 吗 注 我愿意NOT希望讨论我是否应该使用 nvarchar 还是 varchar 您在谈论什么 SQL 实现 我
  • 如何在oracle中获取表作为输出参数

    我正在尝试将 Oracle 过程调用的 out 参数强制转换为对象 它不起作用 因为 据我了解 我需要定义一个映射 它告诉方法如何转换它 如果地图为空或未正确填充 则它默认为 STRUCT 类型的对象 在我的情况下这是错误的 我已经构建了一
  • SQL查询获取最后两条记录的DateDiff

    我有一个名为 Event 的表 其中 eventNum 作为主键 日期作为 SQL Server 2008 R2 中的 datetime2 7 我试图获取表中最后两行的日期并以分钟为单位获取差异 这就是我目前所拥有的 Select DATE
  • 在bigquery中比较两个表的有效方法

    我有兴趣比较两个表是否包含相同的数据 我可以这样做 standardSQL SELECT key1 key2 FROM SELECT table1 key1 table1 key2 table1 column1 table2 column1
  • 如何显示 RSpec 测试生成的 SQL 查询日志?

    我正在为我的 Rails 3 应用程序编写规范 我想测试数据库事务是否真的有效 如果能够看到我的应用程序在规范驱动下生成的 sql 查询 这将非常有帮助 有没有办法像在 Rails 控制台中一样查看查询 我正在使用 Rails 3 0 9
  • 使用显式值进行 BigQuery 合并

    据我所知 BigQuery 支持合并两个表 目前 INSERT操作允许将显式值插入表中 例如 INSERT dataset Inventory product quantity VALUES top load washer 10 front
  • 如何将本机数据库运算符 (postgres ~) 与 JPA 标准生成器一起使用?

    我使用 JPA 2 0 标准构建以下查询 简化 select n from notif n where n message b la 我正在使用 postgresql 数据库 我真的需要 运算符 而不是像 我可以使用与 CriteriaBu
  • 在 SELECT 中将列值拆分为两列?

    我在 varchar 列中有一个字符串值 它是一个由两部分组成的字符串 在它到达数据库之前分割它不是一个选择 该列的值如下所示 one column part1 part2 part1 part2 所以我想要的是一个如下所示的结果集 col
  • 选择两列中两个日期之间的记录

    如何选择两列中两个日期之间的记录 Select From MyTable Where 2009 09 25 is between ColumnDateFrom to ColumnDateTo 我有一个日期 2009 09 25 我喜欢选择
  • Solr 增量导入不起作用

    我使用的是solr 4 2 请注意 完全导入有效 但增量导入却无效 增量导入不会给出任何错误 但不会获取任何更改 这是数据配置文件
  • 常量值如何影响连接的 ON 子句?

    我最近发现 LEFT JOIN 的 ON 子句可能包含 1 1 等值 这让我感到不安 因为它打破了我对连接功能的看法 我遇到过以下情况的更详细版本 SELECT DISTINCT Person ID FROM Person LEFT JOI
  • 从 $i 获取值,顺序被打乱

    for i 0 i lt count name i some output ommited td td

随机推荐

  • 如何查看 xcode5 上的完整构建日志?

    我收到 lipo 错误 我想查看导致该错误的所有步骤 xcode UI 只向我显示错误本身 这是作为文本文件定位的还是 xcode 5 可以如何显示完整的日志 转到 Xcode 中的日志导航器 选择您想要检查的版本 然后按住 Control
  • 反应应用程序。无法对尚未安装的组件调用 setState

    当我尝试更改输入字段上的值时 收到以下警告 无法对尚未安装的组件调用 setState 这是一个空操作 但它可能表明您的应用程序中存在错误 相反 分配给this state直接或定义一个state 具有登录组件中所需状态的类属性 我无法理解
  • GetObject 和 VB6 ActiveX exe

    The VB6 有关 GetObject 的帮助 http msdn microsoft com en us library aa445016 VS 60 aspx说 您不能使用 GetObject 来获取对使用 Visual Basic
  • 使用 Spring @RestController 处理带有 ZonedDateTime 参数的 HTTP GET

    我正在创建一个端点 它将接收日期以在服务器端进行一些过滤 代码如下所示 RequestMapping value test method RequestMethod GET produces MediaType APPLICATION JS
  • 如何将合并标签用于RelativeLayout root?

    我有一个扩展的自定义视图RelativeLayout并在 xml 文件中定义其内容 有RelativeLayout作为其根 我怎样才能避免有两个RelativeLayouts在我的自定义布局膨胀之后 我尝试使用merge标记作为我在 xml
  • 强制 window.open() 在 chrome 中创建新选项卡

    我使用 window open 来填充具有不同内容的新窗口 主要是来自自动化流程的报告和存储的 HTML 我注意到 Chrome 在 window open 方面有一些非常不一致的行为 我的一些调用将创建一个新选项卡 首选行为 一些调用会导
  • 导出到 Excel 时 SSRS 报告颜色发生变化

    当我们将 SSRS 2008 报告导出到 Excel 然后将某个范围从该文件复制到另一个 Excel 文件时 报告中使用的颜色会更改为完全不同的颜色 当我们使用 条件格式 为某些数据着色时 这非常烦人 这些细胞具有特定的颜色 有什么想法吗
  • 包括与 Ant 一起使用的 Google AdMob SDK

    我正在使用 新的 AdMob SDK 按照以下说明进行操作这个谷歌网站 http code google com mobile ads docs android fundamentals html 我们应该整合GoogleAdMobAdsS
  • 更改 iPhone SDK 中的徽章和推送通知

    我尝试过推送通知教程 http mobiforge com developing story programming apple push notification services 它工作正常 但问题是徽章 当我单击视图时 会出现应用程序
  • 如何在 salesforce 中刷新 OAuth 2.0 中的 access_token

    我正在开发一个 salesforce 应用程序并使用 OAuth 2 0 登录 我有一个刷新令牌 如何通过 OAuth 2 0 向 salesforce 发送包含特定用户刷新令牌的请求来获取新的 access token 取自 在 Forc
  • Python 字节连接

    我想将字节字符串的第一个字节连接到字符串的末尾 a b x14 xf6 a a 0 我收到错误 Traceback most recent call last File
  • Crystal Reports 中按两个字段分组

    如何在水晶报表中按两个不同的字段进行分组 敌人的例子 val1 val2 val3 val6 val1 val12 val3 val7 val11 val2 val3 val8 val11 val12 val3 val9 我希望报告看起来像
  • HTML 选择框(下拉菜单)的高度

    有人可以确认它吗not可以更改单击选择框时显示的下拉列表的高度 select 的 size 属性使它看起来像一个列表 CSS 中的 height 属性也没有多大用处 确认的 下拉的部分设置为 显示所有条目所需的高度 或 The height
  • 如何在plsql中的过程体内创建游标

    我要创建光标动态地位于过程体内我也必须使用for loop而不是下面的代码 我做了动态游标 但无法使用 for 循环 PROCEDURE myprocedure AS LV TEST CUR SYS REFCURSOR LV QUERY V
  • 如何使用 SymPy 和 LaTeX 显示百分比字符

    我一直在使用 Sympy 来研究电力系统的方程 并且已经进行了很多处理 以便方程看起来不错且体面 所有值都包含遵循它们的单位 甚至通过方程组合也是如此 我认为这非常重要 因为目标是我正在编写的用于计算我的值的文档是我将呈现的最终文档 我正在
  • Scala (2.8) 清单如何工作?

    我有一些 Scala 代码大量使用了泛型 并且我从文档中了解到 在参数化约束中使用清单可以帮助我解决类型擦除问题 例如 我想实例化泛型类型的新对象 只是 我想更多地了解它是如何工作的 它几乎感觉就像某种哈希图 为每个调用站点获取一个条目 这
  • 我可以使用 mono 的 AOT 功能来本机“预编译”.NET DLL/EXE,以使它们更难进行逆向工程吗?

    我可以使用 mono 的 AOT 提前编译 功能来本机 预编译 我自己的一些 NET DLL 和 或 EXE 的全部或部分 以使它们更难以进行逆向工程吗 我正在使用 Windows 7 x64 但我也有 x86 XP 机器 和 NET 3
  • 使用 ASP.NET MVC 设置路由 {tenant}/{controller}/{action}/{id}?

    我想设置一个多租户 ASP NET MVC 应用程序 理想情况下 这个应用程序应该有一条路线 tenant controller action id each tenant代表应用程序的逻辑实例 简单地独立的多用户帐户 我仍然不清楚具体的细
  • Vuetify / DataTable:更改“显示分组依据”按钮的样式?

    我想使用 vuetify 数据表中的默认分组功能 它工作正常 但我想更改分组的默认按钮样式并将其替换为图标 那可能吗 如果我检查开发工具中的按钮 它只会显示 span group span 在文档中只找到这个 https vuetifyjs
  • 使用 FIRST_VALUE 而不在分组依据中包含内部列

    我正在使用一个看起来像这样的表 userID eventDate eventName 1 2019 01 01 buySoup 2 2019 01 01 buyEggs 2 2019 01 03 buyMilk 2 2019 01 04 b