'집계 함수 또는 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 열이 잘못되었습니다.'오류를 수정하는 방법



문제를 제거하기 위해 도구를 사용해보십시오

오류 ' 열이 집계 함수 또는 GROUP BY 절에 포함되어 있지 않으므로 선택 목록에서 유효하지 않습니다. 아래에 언급 된 '는' 그룹화 ”쿼리를 사용하고 group by 절의 일부가 아니거나 다음과 같은 집계 함수에 포함되지 않은 열을 선택 목록에 하나 이상 포함했습니다. max (), min (), sum (), count ()avg () . 따라서 쿼리가 작동하도록하려면 가능한 경우 모든 집계되지 않은 열을 group by 절에 추가해야하며 결과에 영향을주지 않거나 적절한 집계 함수에 이러한 열을 포함해야하며 이는 매력처럼 작동합니다. MS SQL에서는 오류가 발생하지만 MySQL에서는 발생하지 않습니다.



'집계 함수 또는 GROUP BY 절에 포함되어 있지 않기 때문에 선택 목록에서 열이 유효하지 않습니다.'오류



두 개의 키워드 ' 그룹화 ”및“ 집계 함수 ”이이 오류에 사용되었습니다. 그래서 우리는 그것들을 언제 어떻게 사용하는지 이해해야합니다.



조항 별 그룹화 :

분석가가 SQL을 사용하여 이익, 손실, 매출, 비용, 급여 등과 같은 데이터를 요약하거나 집계해야하는 경우 ' 그룹화 '이 점에서 매우 도움이됩니다. 예를 들어, 요약하면 일일 판매량을 고위 경영진에게 보여줍니다. 마찬가지로 대학 그룹의 한 부서에있는 학생 수를 집계 함수와 함께 계산하려는 경우이를 달성하는 데 도움이됩니다.

분할-적용-결합 전략별로 그룹화 :

'split-apply-combine'전략을 사용하여 그룹화

  • 분할 단계는 그룹을 해당 값으로 나눕니다.
  • 적용 단계는 집계 함수를 적용하고 단일 값을 생성합니다.
  • 결합 된 단계는 그룹의 모든 값을 단일 값으로 결합합니다.

“SPLIT_APPLY_COMBINE”전략 샘플



위의 그림에서 열이 첫 번째 열 C1을 기준으로 세 그룹으로 분할 된 다음 집계 함수가 그룹화 된 값에 적용되는 것을 볼 수 있습니다. 마지막으로 결합 단계는 각 그룹에 단일 값을 할당합니다.

아래 예를 사용하여 설명 할 수 있습니다. 먼저 'appuals'라는 데이터베이스를 만듭니다.

데이터베이스 생성

예:

테이블 만들기“ 종업원 다음 코드를 사용하십시오.

USE [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, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON PRIMARY]) ON [PRIMARY] GO SET ANSI_PADDING OFF GO

직원 테이블 생성

이제 다음 코드를 사용하여 테이블에 데이터를 삽입합니다.

employee (e_id, e_ename, dep_id, salary) values ​​(101, 'Sadia