Så här fixar du felet ”Kolumn är ogiltig i listan eftersom den inte finns i en aggregerad funktion eller GROUP BY-klausulen”



Prova Vårt Instrument För Att Eliminera Problem

Felet ' Kolumnen är ogiltig i listan eftersom den inte finns i en aggregerad funktion eller GROUP BY-satsen ”Som nämns nedan uppstår när du utför“ GRUPP AV ”-Frågan, och du har inkluderat minst en kolumn i listan som varken är en del av gruppen efter klausul eller ingår i en sammanlagd funktion som max (), min (), sum (), count () och genomsnitt () . Så för att frågan ska fungera måste vi lägga till alla icke-aggregerade kolumner i endera gruppen efter klausul om det är möjligt och inte har någon inverkan på resultaten eller inkludera dessa kolumner i en lämplig samlingsfunktion, och detta kommer att fungera som en charm. Felet uppstår i MS SQL men inte i MySQL.



Fel ”Kolumn är ogiltig i listan eftersom den inte finns i en aggregerad funktion eller GROUP BY-satsen”



Två nyckelord “ Grupp av ”Och” aggregerad funktion ”Har använts i detta fel. Så vi måste förstå när och hur vi använder dem.



Gruppera efter klausul:

När en analytiker behöver sammanfatta eller sammanställa data som vinst, förlust, försäljning, kostnad och lön etc. med hjälp av SQL, “ GRUPP AV ”Är till stor hjälp i detta avseende. Till exempel för att sammanfatta, daglig försäljning för att visa för ledande befattningshavare. På samma sätt, om du vill räkna antalet studenter i en institution i en universitetsgrupp tillsammans med aggregerad funktion hjälper det dig att uppnå detta.

Gruppera efter Split-Apply-Combine-strategi:

Gruppera efter 'split-applicera-kombinera' -strategi

  • Delningsfasen delar upp grupperna med sina värden.
  • Tillämpningsfasen tillämpar den samlade funktionen och genererar ett enda värde.
  • Den kombinerade fasen kombinerar alla värden i gruppen som ett enda värde.

Strategispel 'SPLIT_APPLY_COMBINE'



I figuren ovan kan vi se att kolumnen har delats upp i tre grupper baserat på första kolumn C1, och sedan tillämpas aggregerad funktion på grupperade värden. Äntligen tilldelar kombinationsfasen ett enda värde till varje grupp.

Detta kan förklaras med hjälp av exemplet nedan. Skapa först en databas med namnet “appuals”.

Skapa databas

Exempel:

Skapa en tabell “ anställd ”Med följande kod.

ANVÄND [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]. [Medarbetare] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [lön] [int] NULL, CONSTRAINT [PK_medarbetare] PRIMÄR KEY CLUSTERED ([e_id] ASC) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON_ ALLOW_ PRIMÄR)) PÅ [PRIMÄR] GO STÄLL IN ANSI_PADDING AV GO

Skapande av anställds bord

Sätt nu in data i tabellen med följande kod.

Infoga värden för anställda (e_id, e_ename, dep_id, lön) (101, 'Sadia