Kako odpraviti napako »Stolpec je na seznamu za izbiro neveljaven, ker ga ne vsebuje niti sestavljena funkcija niti klavzula GROUP BY«



Preizkusite Naš Instrument Za Odpravo Težav

Napaka » Stolpec je na seznamu za izbiro neveljaven, ker ga ne vsebuje niti sestavljena funkcija niti stavek GROUP BY ', Omenjeno spodaj, nastane, ko izvedete' SKUPINA PO ', Na izbrani seznam pa ste vključili vsaj en stolpec, ki ni niti del skupine po klavzuli niti ni v skupni funkciji, kot je max (), min (), sum (), count () in povprečno () . Če želimo, da bo poizvedba delovala, moramo v katero koli skupino po klavzuli dodati vse neagregirane stolpce, če je izvedljivo in ne vpliva na rezultate, ali te stolpce vključiti v primerno agregatno funkcijo, kar bo delovalo kot čar. Napaka se pojavi v MS SQL, ne pa tudi v MySQL.



Napaka »Stolpec je na seznamu za izbiro neveljaven, ker ga ne vsebuje niti funkcija združevanja niti stavek GROUP BY«



Dve ključni besedi “ Razvrsti po 'In' agregatna funkcija 'So bili uporabljeni pri tej napaki. Zato moramo razumeti, kdaj in kako jih uporabljati.



Razvrsti po klavzuli:

Ko mora analitik s pomočjo SQL strniti ali združiti podatke, kot so dobiček, izguba, prodaja, stroški in plača itd., SKUPINA PO 'Je v tem pogledu zelo koristno. Na primer, če povzamemo, dnevno prodajo prikažite višjemu vodstvu. Podobno vam bo to pomagalo doseči, če želite prešteti število študentov na oddelku v univerzitetni skupini skupaj s skupno funkcijo.

Razvrsti po strategiji razdeli-prijavi-združi:

Združi po strategiji »razdeli-uporabi-združi«

  • Razdeljena faza deli skupine z njihovimi vrednostmi.
  • Faza uveljavitve uporabi agregatno funkcijo in ustvari eno vrednost.
  • Kombinirana faza združuje vse vrednosti v skupini kot eno vrednost.

Vzorec strategije »SPLIT_APPLY_COMBINE«



Na zgornji sliki lahko vidimo, da je bil stolpec razdeljen v tri skupine na podlagi prvega stolpca C1, nato pa je združena funkcija uporabljena za združene vrednosti. Končno kombinirana faza vsaki skupini dodeli eno vrednost.

To je mogoče razložiti s spodnjim primerom. Najprej ustvarite bazo podatkov z imenom 'appuals'.

Ustvarjanje zbirke podatkov

Primer:

Ustvari tabelo “ zaposleni ”Z uporabo naslednje kode.

UPORABI [appuals] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo]. [Zaposleni] ([e_id] [int] NOT NULL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [plača] [int] NULL, OMEJITEV [PK_employee] PRIMARNI KLJUČ KLASIRAN ([e_id] ASC) Z (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW ONROW_LOCKS = ALLOW ONROW_LOCKS = PRIMARY]) ON [PRIMARY] GO SET ANSI_PADDING OFF GO

Ustvarjanje tabele zaposlenih

Zdaj v tabelo vstavite podatke s pomočjo naslednje kode.

Vstavite v vrednosti zaposlenih (e_id, e_ename, dep_id, plača) (101, 'Sadia