Oracle hataları

ORA-00979: not a GROUP BY expression

GROUP BY ifadesi değil

ORA-00979: not a GROUP BY expression

SELECT listesinde ne GROUP BY’da ne de bir toplama fonksiyonunun içinde olan bir kolon var. Kolonu GROUP BY’a ekleyin ya da MAX gibi bir toplama fonksiyonuna alın.

ORA-00979 ne demek?

GROUP BY sorgusu grup başına bir satır döndürür; bu yüzden seçilen her kolonun grup başına tek bir değeri olmalıdır. GROUP BY listesindeki kolonların ve SUM, COUNT gibi toplama fonksiyonlarının vardır. Diğerlerinin olası pek çok değeri vardır ve Oracle birini seçmez. Toplama fonksiyonu olup GROUP BY hiç yoksa hata ORA-00937’dir.

ORA-00979 neden olur?

ORA-00979 nasıl çözülür?

  1. Toplanmayan her kolonu GROUP BY’a ekleyin.
  2. Ya da toplayın: herhangi bir değer yeterliyse MAX(kolon).
  3. SELECT ve GROUP BY’da birebir aynı ifadeyi yazın.
  4. Toplamların yanında ayrıntı gerekiyorsa analitik fonksiyon kullanın: SUM(x) OVER (PARTITION BY y).

ORA-00979 örneği

Seçilen her kolon gruplanmış ya da toplanmış olmalı:

-- ORA-00979: not a GROUP BY expression
SELECT city, name, COUNT(*) FROM customers GROUP BY city;

-- Çalışır
SELECT city, COUNT(*) FROM customers GROUP BY city;

SQLlightspeed’de

Bir ifade hata verdiğinde SQLlightspeed’in hata paneli, hata kodunu sade bir Türkçe açıklama ve ne yapmanız gerektiğine dair bir öneriyle; Oracle’ın kendi mesajı ve Oracle dokümantasyonuna bağlantıyla birlikte gösterir — bu hata ve sık görülen onlarca başka hata için.

İlgili hatalar

ORA-00918ORA-00904ORA-00936 Tüm Oracle hataları →

Oracle dokümantasyonu: ORA-00979. Oracle, Oracle Corporation’ın tescilli ticari markasıdır. SQLlightspeed’in Oracle ile bir bağlantısı yoktur.