首页 > 解决方案 > 在案例表达式 Redshift 中摆脱 group by 变量

问题描述

我正在将代码从 MySQL 语法迁移到 Amazon Redshift,我对 group by 有疑问。所以,代码中的一个字段:

,CASE WHEN condition NOT IN (1,2,3,4,5,6,7,8,9,10,11,12,13,14,15) THEN 0 ELSE measure END as field

在 Redshift 上,代码需要按条件分组。如果我不在 GROUP BY 子句中添加此字段,代码将不会运行。另一方面,在 MySQL 代码中,不使用 group by,也不是强制代码运行的。问题是这个 group by 导致代码返回 38K 行,重复,而不是它通常应该返回的 24K。我还在 MySQL 代码中添加了这个 group by,它返回了 38K 行,与 RS 相同,这证明 group by 导致我希望丢弃的重复项。

因此 Redshift 语法必须按 CASE WHEN 语句中使用的变量进行分组,而 MySQL 语法则没有。这会导致我的 Redshift 代码返回多行。如何将此字段放在 RedShift 上并丢弃 group by 或以某种方式重复?

标签: mysqlgroup-byamazon-redshiftcase-when

解决方案


推荐阅读