Sådan løses fejlen 'Kolonne er ugyldig på listen, fordi den hverken er indeholdt i en samlet funktion eller GROUP BY-klausulen'



Prøv Vores Instrument Til At Fjerne Problemer

Fejlen “ Kolonnen er ugyldig på listen, fordi den hverken er indeholdt i en samlet funktion eller GROUP BY-klausulen ”Nævnt nedenfor opstår, når du udfører“ GROUP BY ”Forespørgsel, og du har medtaget mindst en kolonne på listen, der hverken er en del af gruppen efter klausul, eller den er indeholdt i en samlet funktion som max (), min (), sum (), count () og gennemsnit () . Så for at få forespørgslen til at fungere, er vi nødt til at tilføje alle ikke-aggregerede kolonner til hver gruppe efter klausul, hvis det er muligt og ikke har nogen indflydelse på resultaterne eller inkludere disse kolonner i en passende samlet funktion, og dette fungerer som en charme. Fejlen opstår i MS SQL, men ikke i MySQL.



Fejl 'Kolonne er ugyldig på listen, fordi den hverken er indeholdt i en samlet funktion eller GROUP BY-klausulen'



To nøgleord “ Gruppér efter ”Og“ samlet funktion ”Er blevet brugt i denne fejl. Så vi skal forstå, hvornår og hvordan vi bruger dem.



Gruppér efter klausul:

Når en analytiker har brug for at opsummere eller samle data som fortjeneste, tab, salg, omkostninger og løn osv. Ved hjælp af SQL, “ GROUP BY ”Er meget nyttigt i denne henseende. For eksempel for at opsummere det daglige salg, der skal vises til den øverste ledelse. Tilsvarende, hvis du vil tælle antallet af studerende i en afdeling i en universitetsgruppe sammen med en samlet funktion, hjælper det dig med at nå dette.

Gruppér efter Split-Apply-Combine-strategi:

Gruppér efter brug af 'split-anvend-kombiner-strategi'

  • Opdelingsfasen deler grupperne med deres værdier.
  • Anvendelsesfasen anvender den samlede funktion og genererer en enkelt værdi.
  • Den kombinerede fase kombinerer alle værdier i gruppen som en enkelt værdi.

'SPLIT_APPLY_COMBINE' strategieksempel



I figuren ovenfor kan vi se, at kolonnen er opdelt i tre grupper baseret på første kolonne C1, og derefter anvendes samlet funktion på grupperede værdier. Endelig tildeler kombinationsfasen en enkelt værdi til hver gruppe.

Dette kan forklares ved hjælp af eksemplet nedenfor. Opret først en database med navnet 'appuals'.

Oprettelse af database

Eksempel:

Opret en tabel “ medarbejder ”Ved hjælp af følgende kode.

BRUG [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO Opret TABEL [dbo]. [Medarbejder] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [løn] [int] NULL, KONSTRAINT [PK_medarbejder] PRIMÆR NØGLE KLUSTERET ([e_id] ASC) MED (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON_ ALLOC PRIMÆR)) TIL [PRIMÆR] GO INDSTILL ANSI_PADDING FRA GO

Oprettelse af medarbejderbord

Indsæt nu data i tabellen ved hjælp af følgende kode.

Indsæt i medarbejder (e_id, e_ename, dep_id, løn) værdier (101, 'Sadia