"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

SQL Oracle DB

kleinerChemiker 06.09.2019 - 13:43 1732 3
Posts

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
Eigentlich eine ganz einfache Abfage an eine Oracle DB:

SELECT a, count(a) AS anzahl FROM tabelle GROUP BY a ORDER BY anzahl DESC

Die Spalte a enthält kurzen Text und viele NULLs. Die Ausgabe funktioniert, nur dass die NULLs nicht gezählt werden, sondern die Anzahl 0 haben. Jemand eine Ahnung, warum das so ist und wie man das umgeht?

Ist kein größeres Problem, mich würde es nur interessieren.

tia
Bearbeitet von kleinerChemiker am 06.09.2019, 14:01

ill

...
Avatar
Registered: Nov 2003
Location: Salzburg
Posts: 2059
Naja, das ist so by design und macht imho auch Sinn, in der Regel will ich doch nur Datensätze zählen, die auch einen Wert haben.

COUNT(*) müsste dir alle Datensätze zurückliefern.
Vielleicht hilft dir hier auch dieser Post weiter: https://sqlbenjamin.wordpress.com/2...ng-null-values/

meepmeep

Here to stay
Avatar
Registered: Feb 2006
Location: Wien
Posts: 2334
nvl hilft hier
Code: SQL
SELECT a, count(nvl(a, 'meep')) AS anzahl FROM tabelle GROUP BY a ORDER BY anzahl DESC

Doku dazu: https://docs.oracle.com/database/12....htm#SQLRF00684

kleinerChemiker

Here to stay
Avatar
Registered: Feb 2002
Location: Wien
Posts: 4281
Danke!

Ich will eigentlich alle Datensätze zählen, die meinen Kriterien entsprechen. Ich würde eher erwarten, dass ich eben auf Werte <> NULL einschränken müsste.
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz