Ako opraviť chybu „Stĺpec je v zozname výberov neplatný, pretože nie je obsiahnutý ani v agregovanej funkcii, ani v klauzule GROUP BY“



Vyskúšajte Náš Nástroj Na Odstránenie Problémov

Chyba „ Stĺpec je v zozname výberov neplatný, pretože nie je obsiahnutý v agregačnej funkcii ani v klauzule GROUP BY ”Uvedené nižšie vznikne, keď vykonáte“ SKUPINA PODĽA ”A do výberového zoznamu ste zahrnuli aspoň jeden stĺpec, ktorý nie je súčasťou klauzuly skupiny ani nie je obsiahnutý v agregačnej funkcii ako max (), min (), suma (), počet () a priem. () . Aby dotaz fungoval, musíme pridať všetky neagregované stĺpce do oboch skupín podľa klauzúly, ak je to možné, a nemá to žiadny vplyv na výsledky, alebo tieto stĺpce zahrnúť do vhodnej agregovanej funkcie, čo bude fungovať ako kúzlo. Chyba nastáva v MS SQL, ale nie v MySQL.



Chyba „Stĺpec je v zozname výberov neplatný, pretože nie je obsiahnutý v agregačnej funkcii ani v klauzule GROUP BY“



Dve kľúčové slová „ Zoskupiť podľa “A„ agregačná funkcia ”Boli použité pri tejto chybe. Musíme teda pochopiť, kedy a ako ich použiť.



Zoskupiť podľa klauzuly:

Keď analytik potrebuje pomocou SQL agregovať alebo agregovať údaje, ako sú zisk, strata, tržby, náklady a plat atď., “ SKUPINA PODĽA ”Je v tomto ohľade veľmi užitočný. Napríklad, aby som to zhrnul, denný predaj sa ukáže vrcholovému manažmentu. Podobne vám to pomôže dosiahnuť, ak chcete spočítať počet študentov na katedre v univerzitnej skupine spolu s agregovanou funkciou.

Zoskupiť podľa stratégie Split-Apply-Combine:

Zoskupte podľa stratégie „split-apply-combine“

  • Rozdelená fáza rozdeľuje skupiny podľa ich hodnôt.
  • Fáza použitia použije agregačnú funkciu a vygeneruje jednu hodnotu.
  • Kombinovaná fáza kombinuje všetky hodnoty v skupine ako jednu hodnotu.

Ukážka stratégie „SPLIT_APPLY_COMBINE“



Na obrázku vyššie vidíme, že stĺpec bol rozdelený do troch skupín na základe prvého stĺpca C1 a potom sa na zoskupené hodnoty použije agregačná funkcia. Na konci kombinačná fáza priradí každej skupine jednu hodnotu.

To možno vysvetliť na príklade uvedenom nižšie. Najskôr vytvorte databázu s názvom „appuals“.

Vytvorenie databázy

Príklad:

Vytvorte tabuľku “ zamestnanec ”Pomocou nasledujúceho kódu.

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, [plat] [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 = ONOC = ONOC = ONOC = ONOC = ONOC = ONOC = ONOC = ONOC) PRIMÁRNE]) ZAPNUTÉ [PRIMÁRNE] VYPRACUJTE ANSI_PADDING OFF

Vytváranie tabuliek zamestnancov

Teraz vložte údaje do tabuľky pomocou nasledujúceho kódu.

Vložte do hodnoty zamestnanca (e_id, e_ename, dep_id, plat) hodnoty (101, „Sadia