GROUP_BY_AGGREGATE hibaosztály
Az összesítő függvények nem engedélyezettek a GROUP BY-ban, de megtalálhatók.<sqlExpr>
Paraméterek
- sqlExpr: Aggregátumfüggvényt tartalmazó kifejezés.
Magyarázat
A záradék célja az GROUP BY
eltérő csoportok halmazának azonosítása.
Ezután a lista összesítő függvényeinek SELECT
használatával minden sorcsoport egyetlen sorba lesz összecsukva.
Végül szűrheti a csoportosított sorokat a HAVING
záradék használatával.
A sqlExpr
a lista vagy HAVING
záradék helyett a GROUP BY
SELECT
záradékban található.
Kezelés
A hiba elhárítása az októl függ:
A megfelelő függvényt adta meg?
Cserélje le
sqlExpr
a elemet egy megfelelő függvényre, amely nem összesítő függvény.Összesíteni kívánja a kifejezést?
Távolítsa el a kifejezést a
GROUP BY
fájlból, és adja hozzá aSELECT
listához.Szűrni szeretne az összesített kifejezésre?
Távolítsa el a kifejezést a
GROUP BY
záradékból, és adja hozzá egyBOOLEAN
operátorral aHAVING
záradékhoz.
Példák
-- An aggregation in the GROUP BY clause
> SELECT a FROM VALUES(1, 2), (1, 3) AS T(a, b) GROUP BY a, sum(b);
[GROUP_BY_AGGREGATE] Aggregate functions are not allowed in GROUP BY, but found sum(T.b).; line 1 pos 58;
-- Move the expression to the SELECT list
> SELECT a, sum(b) FROM VALUES(1, 2), (1, 3) AS T(a, b) GROUP BY a;
1 5
-- An aggregation in the GROUP BY clause
> SELECT a, sum(b) FROM VALUES(1, 2), (1, 3), (2, 1) AS T(a, b) GROUP BY a, sum(b) > 1;
[GROUP_BY_AGGREGATE] Aggregate functions are not allowed in GROUP BY, but found (sum(T.b) > CAST(1 AS BIGINT)).; line 1 pos 74;
-- Move the expression to the HAVING clause
> SELECT a, sum(b) FROM VALUES(1, 2), (1, 3), (2, 1) AS T(a, b) GROUP BY a HAVING sum(b) > 1;
1 5