Bir toplama işlevinde veya GROUP BY yan tümcesinde bulunmadığından 'Sütun seçim listesinde geçersiz' Hatası nasıl düzeltilir?



Sorunları Ortadan Kaldırmak Için Enstrümanımızı Deneyin

Hata ' Sütun, bir toplama işlevinde veya GROUP BY yan tümcesinde bulunmadığından, seçim listesinde geçersizdir 'Aşağıda belirtilen', ' GRUPLAMA 'Sorgusudur ve seçim listesine, ne grup maddesine göre grubun parçası olan ne de bir toplama işlevinde bulunan en az bir sütun eklediniz. max (), min (), sum (), count () ve ort () . Bu nedenle, sorgunun çalışmasını sağlamak için, mümkünse ve sonuçlar üzerinde herhangi bir etkisi yoksa veya bu sütunları uygun bir toplama işlevine dahil ederse, toplanmamış tüm sütunları her iki cümleye de eklememiz gerekir ve bu bir cazibe gibi çalışacaktır. Hata MS SQL'de ortaya çıkar, ancak MySQL'de değildir.



Hata 'Bir toplama işlevinde veya GROUP BY yan tümcesinde yer almadığından sütun seçim listesinde geçersiz'



İki anahtar kelime ' Gruplama ölçütü ' ve ' toplama işlevi 'Bu hatada kullanılmıştır. Bu yüzden onları ne zaman ve nasıl kullanacağımızı anlamalıyız.



Maddeye göre gruplama:

Bir analistin kar, zarar, satış, maliyet ve maaş gibi verileri SQL kullanarak özetlemesi veya bir araya getirmesi gerektiğinde, ' GRUPLAMA ”Bu konuda çok yardımcı oluyor. Örneğin, üst yönetime göstermek için günlük satışları özetlemek gerekirse. Benzer şekilde, bir üniversite grubundaki bir bölümdeki öğrenci sayısını toplama işlevi ile birlikte saymak istiyorsanız, bunu elde etmenize yardımcı olacaktır.

Böl-Uygula-Birleştir stratejisine göre gruplandırın:

'Böl-uygula-birleştir' stratejisine göre gruplama

  • Bölünmüş faz, grupları değerlerine göre ayırır.
  • Uygulama aşaması, toplama işlevini uygular ve tek bir değer oluşturur.
  • Birleşik faz, gruptaki tüm değerleri tek bir değer olarak birleştirir.

'SPLIT_APPLY_COMBINE' strateji örneği



Yukarıdaki şekilde, sütunun ilk C1 sütununa göre üç gruba ayrıldığını ve ardından gruplanmış değerlere toplama işlevinin uygulandığını görebiliriz. Son olarak birleştirme aşaması her gruba tek bir değer atar.

Bu, aşağıdaki örnek kullanılarak açıklanabilir. İlk önce 'appuals' adlı bir veritabanı oluşturun.

Veritabanı oluşturma

Misal:

Tablo oluştur ' işçi 'Aşağıdaki kodu kullanarak.

[Appuals] KULLANIN GİT ANSI_NULLS GİT YOLDA AYARLA QUOTED_IDENTIFIER AYARLA GO DEVAM EDİN ANSI_PADDING OLUŞTUR TABLOSU [dbo]. [Çalışan] ([e_id] [int] NULL DEĞİL, [e_ename] [varchar] (50) NULL, [dep_id] [int] NULL, [maaş] [int] NULL, CONSTRAINT [PK_employee] BİRİNCİL ANAHTAR KÜMELENMİŞ ([e_id] ASC) (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_LOCKS) [ONOW_PAGE) PRIMARY]) ON [PRIMARY] SET ANSI_PADDING OFF GO

Çalışan tablosu oluşturma

Şimdi, aşağıdaki kodu kullanarak tabloya veri ekleyin.

Çalışan (e_id, e_ename, dep_id, maaş) değerlerine (101, 'Sadia