Как исправить ошибку «Столбец недопустим в списке выбора, потому что он не содержится ни в агрегатной функции, ни в предложении GROUP BY»



Попробуйте наш инструмент устранения неполадок

Ошибка ' Столбец недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY. Упомянутый ниже возникает, когда вы выполняете « ГРУППА ПО », И вы включили по крайней мере один столбец в список выбора, который не является частью предложения group by и не содержится в агрегатной функции, например макс (), мин (), сумма (), счет () и avg () . Итак, чтобы запрос работал, нам нужно добавить все неагрегированные столбцы в любое предложение group by, если это возможно и не влияет на результаты, или включить эти столбцы в подходящую агрегатную функцию, и это будет работать как шарм. Ошибка возникает в MS SQL, но не в MySQL.



Ошибка «Столбец недопустим в списке выбора, поскольку он не содержится ни в агрегатной функции, ни в предложении GROUP BY»



Два ключевых слова ' Группа по ' и ' агрегатная функция »Были использованы в этой ошибке. Поэтому мы должны понимать, когда и как их использовать.



Группировать по пункту:

Когда аналитику необходимо суммировать или агрегировать данные, такие как прибыль, убыток, продажи, затраты, зарплата и т. Д., С помощью SQL, « ГРУППА ПО »Очень помогает в этом отношении. Например, чтобы подвести итог, ежедневные продажи, чтобы показать высшему руководству. Точно так же, если вы хотите подсчитать количество студентов на факультете в университетской группе, а агрегированная функция поможет вам в этом.

Группировать по стратегии разделения-применения-объединения:

Группировка по использует стратегию «разделить-применить-объединить»

  • Разделенная фаза делит группы по их значениям.
  • На этапе применения применяется агрегатная функция и генерируется одно значение.
  • Комбинированный этап объединяет все значения в группе как одно значение.

Пример стратегии «SPLIT_APPLY_COMBINE»



На рисунке выше мы видим, что столбец разделен на три группы на основе первого столбца C1, а затем к сгруппированным значениям применяется агрегатная функция. Наконец, фаза комбинирования присваивает каждой группе одно значение.

Это можно пояснить на примере ниже. Сначала создайте базу данных с именем «appuals».

Создание базы данных

Пример:

Создать таблицу « работник ”Используя следующий код.

ИСПОЛЬЗУЙТЕ [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]. [Employee] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [salary] [int] NULL, CONSTRAINT [PK_employee] PRIMARY KEY CLUSTERED ([e_id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLKSOW_ROW_LOCKS = ON_LOCKS = ON, ALLKSOW_ROW_LOCKS = ON, ALL PRIMARY]) ON [PRIMARY] GO УСТАНОВИТЬ ANSI_PADDING OFF GO

Создание таблицы сотрудников

Теперь вставьте данные в таблицу, используя следующий код.

Вставить в значения сотрудников (e_id, e_ename, dep_id, salary) (101, 'Sadia