De fout herstellen ‘Kolom is ongeldig in de selectielijst omdat deze niet is opgenomen in een verzamelfunctie of de GROUP BY-clausule’



Probeer Ons Instrument Voor Het Oplossen Van Problemen

De fout ' Kolom is ongeldig in de selectielijst omdat deze niet is opgenomen in een aggregatiefunctie of de GROUP BY-clausule 'Hieronder vermeld ontstaat wanneer u' GROEP OP 'Zoekopdracht, en u heeft ten minste één kolom in de selectielijst opgenomen die geen deel uitmaakt van de group by-clausule en ook niet is opgenomen in een samengestelde functie zoals max (), min (), sum (), count () en gem. () . Dus om de query te laten werken, moeten we alle niet-geaggregeerde kolommen toevoegen aan een van beide groepen op clausules, indien mogelijk en dit heeft geen enkele invloed op de resultaten, of nemen deze kolommen op in een geschikte geaggregeerde functie, en dit zal als een charme werken. De fout doet zich voor in MS SQL maar niet in MySQL.



Fout 'Kolom is ongeldig in de keuzelijst omdat deze niet is opgenomen in een verzamelfunctie of de GROUP BY-clausule'



Twee trefwoorden ' Groeperen op 'En' geaggregeerde functie ”Zijn gebruikt in deze fout. We moeten dus begrijpen wanneer en hoe we ze moeten gebruiken.



Groeperen op clausule:

Wanneer een analist de gegevens zoals winst, verlies, omzet, kosten en salaris, enz. Moet samenvatten of aggregeren met behulp van SQL, ' GROEP OP ”Is daarbij erg behulpzaam. Om samen te vatten, dagelijkse verkopen om aan het senior management te laten zien. Evenzo, als u het aantal studenten op een afdeling in een universitaire groep wilt tellen, samen met de geaggregeerde functie, kunt u dit bereiken.

Groeperen op Split-Apply-Combine-strategie:

Groeperen op maakt gebruik van de 'split-apply-combi' -strategie

  • De splitsingsfase verdeelt de groepen met hun waarden.
  • De toepassingsfase past de geaggregeerde functie toe en genereert een enkele waarde.
  • De gecombineerde fase combineert alle waarden in de groep tot één waarde.

Strategievoorbeeld 'SPLIT_APPLY_COMBINE'



In de bovenstaande afbeelding kunnen we zien dat de kolom is opgesplitst in drie groepen op basis van de eerste kolom C1, en vervolgens wordt de aggregatiefunctie toegepast op gegroepeerde waarden. Eindelijk kent de combinatiefase een enkele waarde toe aan elke groep.

Dit kan worden uitgelegd aan de hand van het onderstaande voorbeeld. Maak eerst een database met de naam 'appuals'.

Database maken

Voorbeeld:

Maak een tabel ' werknemer ”Met de volgende code.

GEBRUIK [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]. [Medewerker] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [salaris] [int] NULL, CONSTRAINT [PK_employee] PRIMAIRE SLEUTEL GECLUSTERD ([e_id] ASC) MET (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) PRIMAIR]) AAN [PRIMAIR] GO SET ANSI_PADDING UIT GO

Werknemer tafel maken

Voeg nu gegevens in de tabel in met de volgende code.

Invoegen in werknemer (e_id, e_ename, dep_id, salaris) waarden (101, 'Sadia