问题标签 [sql-standards]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
123 浏览

sql - 什么时候可以将聚合函数嵌套在标准 SQL 中?

我知道它在 SQL-92 中是不允许的。但从那以后它可能已经改变了,特别是当应用了一个窗口时。您能否解释这些变化并给出引入它们的版本(或版本,如果有更多)?

例子

  1. SUM(COUNT(votes.option_id)) OVER() 是每个标准 SQL:2016(或更早版本)的有效语法吗?

这是我在为什么在PostgreSQL中使用窗口函数时可以嵌套聚合函数?.

  1. CodewarsCalculating Running Total (SQL) kata是其最受好评的解决方案(使用 PostgreSQL 13.0,一个高度符合标准的引擎,因此代码很可能是标准的)这个:

(可以简化为:

我认为::s 是一种我不知道的新语法。现在允许从 TIMESTAMP 转换为 DATE(在 SQL-92 中不允许)。)

  1. 正如这个 SO 答案所解释的,即使没有窗口,Oracle 数据库也允许它GROUP BY从上下文中提取。我不知道标准是否允许。