可用版本: Dev (3.21) | 最新版 (3.20) | 3.19 | 3.18

不必要的DISTINCT

适用于 ✅ 开源版   ✅ 专业版   ✅ 企业版

当每个 GROUP BY 表达式 至少在 SELECT DISTINCT 子句 中投影一次(以任何顺序)时,DISTINCT 关键字是不必要的。

使用 Settings.transformPatternsUnnecessaryDistinct,可以实现以下转换

-- With Settings.transformPatternsUnnecessaryDistinct active, this:
SELECT DISTINCT b, a, count(*) FROM t GROUP BY a, b;

-- ... is transformed into the equivalent expression:
SELECT b, a, count(*) FROM t GROUP BY a, b;

在更简单的情况下,例如仅投影查询,DISTINCT 也永远是不必要的

-- With Settings.transformPatternsUnnecessaryDistinct active, this:
SELECT DISTINCT 1, count(*);

-- ... is transformed into the equivalent expression:
SELECT 1, count(*);

反馈

您对此页面有任何反馈吗? 我们很乐意听取您的意见!

The jOOQ Logo