Cum se remediază eroarea „Coloana este nevalidă în lista de selectare, deoarece nu este conținută nici într-o funcție agregată, nici în clauza GROUP BY”



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Eroarea ' Coloana este nevalidă în lista de selectare, deoarece nu este conținută nici într-o funcție agregată, nici în clauza GROUP BY 'Menționat mai jos apare atunci când executați' A SE GRUPA CU ”Și ați inclus cel puțin o coloană în lista de selectare care nu face parte din grupul prin clauză și nici nu este conținută într-o funcție agregată precum max (), min (), sum (), count () și avg () . Deci, pentru a face ca interogarea să funcționeze, trebuie să adăugăm toate coloanele neagregate la fiecare grupă prin clauză, dacă este posibil și nu are niciun impact asupra rezultatelor sau să includem aceste coloane într-o funcție de agregare adecvată, iar acest lucru va funcționa ca un farmec. Eroarea apare în MS SQL, dar nu în MySQL.



Eroare „Coloana este nevalidă în lista de selectare deoarece nu este conținută nici într-o funcție agregată, nici în clauza GROUP BY”



Două cuvinte cheie „ A se grupa cu ' și ' funcție agregată ”Au fost utilizate în această eroare. Deci, trebuie să înțelegem când și cum să le folosim.



Grupați prin clauză:

Atunci când un analist trebuie să rezume sau să agregeze date, cum ar fi profitul, pierderea, vânzările, costul și salariul etc. folosind SQL, „ A SE GRUPA CU ”Este foarte util în acest sens. De exemplu, pentru a rezuma, vânzările zilnice trebuie prezentate conducerii superioare. În mod similar, dacă doriți să numărați numărul de studenți dintr-un departament dintr-un grup universitar împreună cu funcția agregată vă va ajuta să atingeți acest lucru.

Grupați după strategia Split-Apply-Combine:

Grupați în funcție de strategia „split-apply-combine”

  • Faza divizată împarte grupurile cu valorile lor.
  • Faza de aplicare aplică funcția agregată și generează o singură valoare.
  • Faza combinată combină toate valorile din grup ca o singură valoare.

Eșantion de strategie „SPLIT_APPLY_COMBINE”



În figura de mai sus putem vedea că coloana a fost împărțită în trei grupuri pe baza primei coloane C1, iar apoi funcția agregată este aplicată pe valorile grupate. În cele din urmă, faza de combinare atribuie o singură valoare fiecărui grup.

Acest lucru poate fi explicat folosind exemplul de mai jos. Mai întâi, creați o bază de date numită „appuals”.

Crearea bazei de date

Exemplu:

Creați un tabel „ angajat ”Folosind următorul cod.

USE [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]. [Angajat] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [salariu] [int] NULL, CONSTRAINT [PK_employee] KEY PRIMARY CLUSTERED ([e_id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_P PRIMARY]) ON [PRIMARY] GO SET SET ANSI_PADDING OFF GO

Crearea tabelelor angajaților

Acum, introduceți date în tabel folosind următorul cod.

Introduceți în valorile angajaților (e_id, e_ename, dep_id, salariu) (101, 'Sadia