» »

[MariaDB] Zakaj "COUNT" vrača NULL vrednost, kadar WHERE pogoj ni izpolnjen?

[MariaDB] Zakaj "COUNT" vrača NULL vrednost, kadar WHERE pogoj ni izpolnjen?

HotBurek ::

Dobro jutro.

Evo, nov dan, nov izziv.

Imam tabelo test1, z enim stolpcem text1.

V tabeli so sledeči podatki:

text1|
-----+
a    |

Potem poženem sledeč query:

SELECT `text1`, COUNT(`text1`) AS 'count'
FROM `test1`
WHERE `text1` = 'b';

Zanima me, zakaj pri uporabi COUNT in WHERE pogoja dobim ven NULL za primer, ko WHERE pogoj ni izpolnjen?

text1 |count|
------+-----+
[NULL]|    0|


-------------------------------------------------

Aha, i see.

Treba je dodati GROUP BY.

Well done.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window
  • spremenilo: HotBurek ()

Utk ::

Kak shity sql je to, da ti to sploh dovoli brez group by.

DamijanD ::

oracle in mssql tega ne dovolita.

Ampak vprašanje je zakaj sploh rabiš selektirat stolpec, če imaš vrednost že znano v where pogoju, tako da imaš lahko:

SELECT COUNT(`text1`) AS 'count'
FROM `test1`
WHERE `text1` = 'b';

to pa dela...

HotBurek ::

Stolpec se selekta zato, ker se rezultat tega select-a potem inserta v tabelo. Se pravi, koliko je count za določen key.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Ahim ::

HotBurek je izjavil:

Stolpec se selekta zato, ker se rezultat tega select-a potem inserta v tabelo. Se pravi, koliko je count za določen key.

:))

Ce bi tisto kar si napisal zgoraj (prilepljeno se enkrat spodaj) delovalo, bi bila vrednost reyultata za text1 kaksna?
SELECT `text1`, COUNT(`text1`) AS 'count'
FROM `test1`
WHERE `text1` = 'b';

ReRMh ::

saj pa si že sam napisal, da moraš uporabiti group by - že sql interpreter bi moral javiti napako brez...

HotBurek ::

Celoten query je bil tak:

SELECT ...
FROM ...
WHERE ...
UNION
SELECT ...
FROM ...
WHERE ...
GROUP BY ...

In sem narobe predvidel, da GROUP BY "potegne" čez vse. Tako semo moral dodat še en GROUP BY za prvi select in to je rešilo zadevo.
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

FireSnake ::

Jezus Marija!
Vseskozi ista zgodba: naspama z nepopolno kodo in nepopolnim vprašanjem in pol odgovarja sam sebi. Ker pomagat se mu da le delno.
Neverjetno!
In modi to pustijo. Je kar malo žalostno.
Poglej in se nasmej: vicmaher.si

kuall ::

me zanima ko bi te vidu v živo če bi bil un aha moment, zdaj razumem , zakaj fante sprašuje tako čudaška fprašanja na sit forumu :D mlad al pa retardiran, to bi bilo logično


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Kako pohitrit build-anje index za autocomplete?

Oddelek: Programiranje
111064 (596) DamijanD
»

Kako napisat SQL query?

Oddelek: Programiranje
131291 (497) HotBurek
»

[MariaDB] Kolikokrat se pojavi tekst v tekstu?

Oddelek: Programiranje
7809 (502) BigWhale
»

Podatkovne baze - SQL enostavne poizvedbe

Oddelek: Programiranje
72053 (1646) galu
»

Normalizirana struktura - query

Oddelek: Programiranje
191717 (1337) frudi

Več podobnih tem