Я тестирую и пытаюсь понять и настроить большой запрос, написанный кем-то другим, хотел бы получить некоторую помощь со значением целого в разделе GROUP BY. Он имеет следующую структуру:
SELECT
column1,
column2,
SUM(column3),
SUM(column4),
FROM
table1 AS a
WHERE
column5 <> 3
GROUP BY
column1,
7,
column2;
Что делает это 7? Я не могу найти его нигде в выходе или посмотреть, какой эффект он получил.
Документация SELECT
объясняет:
Столбцы, выбранные для вывода, могут быть указаны в предложениях
ORDER BY
иGROUP BY
с использованием имен столбцов, псевдонимов столбцов или позиций столбцов.
Позиции столбцов являются целыми числами и начинаются с 1.
GROUP BY 7
в вашем запросе не является допустимой позицией столбца, потому что предложение SELECT
содержит только 4
выражения.
CONCAT(column6, column7)
, а не столбцами в исходной таблице, но выбраны для вывода
SELECT
нет «15-го столбца».
Когда любое целое значение используется для Group by
, это означает группировку по 7-му столбцу. То же самое можно сделать с помощью ORDER BY
Я предположил, что вы предоставили код для образца в своем фактическом коде, у вас должно быть 7 или более 7 столбцов в предложении SELECT
Целочисленные значения, используемые в GROUP BY
и ORDER BY
- это позиция столбцов, начинающихся с 1 (система подсчета числа изредка);
Вы можете посмотреть больше об этом на официальной документации здесь.