Vea parandamine 'Veerg on valimisloendis vale, kuna see ei sisalda koondfunktsiooni ega klauslit GROUP BY'



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

Viga „ Veerg on valimisloendis vale, kuna seda ei sisalda koondfunktsioon ega klausel GROUP BY 'Allpool mainitud tekib siis, kui täidate GRUPP JÄRGI ”Päringut ja olete valimisloendisse lisanud vähemalt ühe veeru, mis ei ole klausli järgi grupi osa ega sisalda koondfunktsiooni nagu max (), min (), summa (), count () ja keskm. () . Nii et päringu toimimiseks peame lisama kõik mitteagregeeritud veerud mõlemasse rühma klauslite kaupa, kui see on teostatav ja see ei mõjuta tulemusi või lisama need veerud sobivasse koondfunktsiooni ja see töötab nagu võlu. Viga tekib MS SQL-is, kuid mitte MySQL-is.



Viga „Veerg on valimisloendis vale, kuna see ei sisaldu koondfunktsioonis ega klauslis GROUP BY”



Kaks märksõna “ Grupeerige 'Ja' koondfunktsioon ”On selles veas kasutatud. Seega peame mõistma, millal ja kuidas neid kasutada.



Rühmitada klausli järgi:

Kui analüütikul on vaja SQL-i abil kokku võtta või liita andmed, näiteks kasum, kahjum, müük, maksumus ja palk jne, GRUPP JÄRGI ”On selles osas väga kasulik. Näiteks kokkuvõtteks igapäevane müük, mida juhtkonnale näidata. Samamoodi aitab see saavutada, kui soovite arvestada ülikooligrupi osakonna üliõpilaste arvu koos koondfunktsiooniga.

Rühmitage jagamise, rakendamise ja kombineerimise strateegia järgi:

Grupeerimine kasutab strateegiat „jaga-rakenda-ühenda“

  • Jagatud faas jagab rühmad nende väärtustega.
  • Rakendusfaas rakendab koondfunktsiooni ja genereerib ühe väärtuse.
  • Kombineeritud faas ühendab kõik rühma väärtused ühe väärtusena.

Strateegia „SPLIT_APPLY_COMBINE” näidis



Ülaltoodud joonisel näeme, et veerg on jaotatud kolmeks rühmaks esimese veeru C1 põhjal ja seejärel rakendatakse grupeeritud väärtustele liitfunktsioon. Lõpuks omistab kombineerimisfaas igale rühmale ühe väärtuse.

Seda saab selgitada allpool toodud näite abil. Kõigepealt looge andmebaas nimega “appuals”.

Andmebaasi loomine

Näide:

Loo tabel “ töötaja ”Kasutades järgmist koodi.

KASUTA [appuals] GO SET ANSI_NULLS GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABEL [dbo]. [Töötaja] ([e_id] [int] NOT NULL, [e_enimi] [varchar] (50) NULL, [dep_id] [int] NULL, [palk] [int] NULL, PIIRANG [PK_töötaja] PÕHIVÕTI KLAMPERITUD ([e_id] ASC) SEES (PAD_INDEX = VÄLJAS, STATISTICS_NORECOMPUTE = VÄLJAS, IGNORE_DUP_KEY = VÄLJAS, ALLOW_ROW_LOCKS = ON PRIMARY]) [PRIMARY] GO SET ON ANSI_PADDING OFF GO

Töötajate tabeli loomine

Nüüd sisestage andmed tabelisse järgmise koodi abil.

Sisestage töötaja (e_id, e_enimi, dep_id, palk) väärtused (101, 'Sadia