我只是好奇:我知道一些

SUM(string = 'anyString') over (partition by ANY_COLUMN)

SUM(string like 'anyWildcard%') over (partition by ANY_COLUMN)

is w或king in MySQL/MariaDB. What would be the equivalent in Oracle?

推荐答案

ANSI/ISO SQL标准方法是使用case expressions来执行conditional aggregation:

SUM(case when string = 'anyString' then 1 else 0 end) over (partition by ANY_COLUMN)

Standards compliance note:

使用case表达式是Core SQL功能,即预期工作在any dbms上.

FILTER是ANSI/ISO SQL标准的可选特性.'Without Feature T612, “Advanced OLAP operations”, conforming SQL language shall not contain a < filter clause >.'

Sql相关问答推荐

Oracle中的分层查询

Postgresql在加入时显示重复的行

R中对Arrow duckdb工作流的SQL查询

如何查找所提供日期范围的所有季度开始日期和结束日期

直接加法(1+1)与聚合函数SUM(1+1)的区别是什么

Oracle分层查询-两条路径在末尾合并为一条

用VB.NET在Dapper中实现MS Access数据库顺序透视

Snowflake 中的分层数据

将 jsonb 数组中的对象取消嵌套到单独的行中

使用 SQL 将列添加到 Access 数据库时出错

GRAFANA 数据库查询错误:pq:列名称不存在

将空 JSON 数组添加到 SQL Server 表列中的 JSON 字符串

没有调用子查询的嵌套 JOIN语法是什么?

如何计算两个非周期性时间序列+分组的重叠持续时间

如何通过CROSS APPLY获取多级嵌套JSON属性的值?

如何按日期和位置对最近 3 个报告日期的 SQL 查询结果进行透视?

BigQuery Pivot 遗漏行

如何使用子查询锁定此查询中的选定行?

在时态表和非时态表之间使用 EXCEPT 的 SQL 子查询给出表达式错误数

在 PostgreSQL 中,如何将数组中的每个元素用作另一个表中的键?