From 5998383a3b16a33c95dd71b3dd30614a0fbf5741 Mon Sep 17 00:00:00 2001 From: Amos Bird Date: Wed, 20 Jan 2021 20:12:18 +0800 Subject: [PATCH] Fix with aggregates --- src/Interpreters/ExpressionAnalyzer.cpp | 1 + src/Interpreters/GetAggregatesVisitor.h | 6 ++++++ 2 files changed, 7 insertions(+) diff --git a/src/Interpreters/ExpressionAnalyzer.cpp b/src/Interpreters/ExpressionAnalyzer.cpp index 13f23643c3..77f3c9d753 100644 --- a/src/Interpreters/ExpressionAnalyzer.cpp +++ b/src/Interpreters/ExpressionAnalyzer.cpp @@ -55,6 +55,7 @@ #include #include +#include namespace DB { diff --git a/src/Interpreters/GetAggregatesVisitor.h b/src/Interpreters/GetAggregatesVisitor.h index 266187aaff..0eeab8348f 100644 --- a/src/Interpreters/GetAggregatesVisitor.h +++ b/src/Interpreters/GetAggregatesVisitor.h @@ -31,6 +31,12 @@ public: { if (child->as() || child->as()) return false; + if (auto * select = node->as()) + { + // We don't analysis WITH statement because it might contain useless aggregates + if (child == select->with()) + return false; + } if (auto * func = node->as()) { if (isAggregateFunction(*func)) -- GitLab