sql - 列 "f.price"必须出现在 GROUP BY 子句中或用于聚合函数中,但我已经使用了窗口函数

标签 sql postgresql

我有一个包含两列的表格:dateprice。它们都不是独一无二的。

我需要按唯一的日期顺序获取运行总计(一个日期 - 此日期的值总和,下一个日期 - 下一个总和 + 前一个等等)。

我知道如何使用子查询来做到这一点,但我想使用窗口函数:

有一个简单的查询:

SELECT f.date, SUM(f.price) OVER () FROM f GROUP BY f.date

它返回错误:

column f.price must appear in the GROUP BY clause or be used in an aggregate function

但我已经使用了聚合函数 (SUM)。

有人能告诉我为什么会这样吗?

最佳答案

尽量避免 over()

select f.date,
   SUM(f.price) 
from f
group by f.date

关于sql - 列 "f.price"必须出现在 GROUP BY 子句中或用于聚合函数中,但我已经使用了窗口函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55406101/

相关文章:

Android 操作系统和 postgreSQL

PostgreSQL : How to join with multiple cross-reference table?

arrays - PostgreSQL 中两个数组的并集,无需取消嵌套

c# - 如果我需要使用一个小表来部署应用程序,应该使用哪个数据库?

mysql - 如何使用外键条件的左连接?

sql - 在 Microsoft Sql Server 2008R2 及更高版本上隐藏登录数据库

sql - SQL查询的性能

mysql - 我可以使用什么软件来自动比较 MySQL 数据库中的数据?

postgresql - 为什么我的Flask服务器无法使用docker-compose与postgres数据库对话?

ruby-on-rails-3 - Postgres : Restructuring to Schemas