MYSQL Count obsahujuci AS

Programovacie jazyky, rady, poradňa...
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

Zdravím. Už pár hodín si neviem rady, ani google+fórumy nepomohli.

Svoj dotaz som zjednodušil ako sa len dalo, aby som ho sem mohol zrozumiteľne vložiť a popísať ním, čo mi treba. Potrebujem dosiahnuť niečo takéto:

Kód: Vybrať všetko

SELECT COUNT((inzerat_kat1*inzerat_kat2) AS katx) FROM pre_inzeraty WHERE 1=1 
Teda počas behu dotazu si počítam jednu číselnú hodnotu. Na ktorú sa neskôr opýtam, či je menšia ako 20:

Kód: Vybrať všetko

SELECT COUNT((inzerat_kat1*inzerat_kat2) AS katx) FROM pre_inzeraty WHERE 1=1 HAVING katx < 20 
Ako na to aby to fungovalo? Aby som do COUNTU mohol vložiť AS? Ďakujem.
javatar
Hardcore addict
Hardcore addict
Používateľov profilový obrázok
Príspevky: 6112
Registrovaný: 12 aug 2010, 14:49
Bydlisko: I don't exist at all.

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa javatar »

co chces spocitat tym countom ked tam mas nasobenie?
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

Chcem vedieť počet inzerátov pre daný dotaz. Už ma napadlo asi riešenie, že to násobenie dám do WHERE, bez toho pomocného názvu katx:
WHERE 1=1 AND (inzerat_kat1*inzerat_kat2) < 20
Ale vhodnejšie by mi bolo zachovať AS katx.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa audiotrack »

a podľa čoho si usúdil, že by to bolo vhodnejšie?
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

Ak by som potreboval použiť viackrát ten výsledok násobenia. Zatiaľ mi stačí raz v tom WHERE, kto vie čo bude neskôr :)
c-ice
Medium Star
Medium Star
Používateľov profilový obrázok
Príspevky: 475
Registrovaný: 04 mar 2008, 15:18
Kontaktovať používateľa:

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa c-ice »

to co miesas tie veci ?

Kód: Vybrať všetko

SELECT (inzerat_kat1 * inzerat_kat2) AS katx FROM pre_inzeraty WHERE inzerat_kat1*inzerat_kat2 < 20;
pripadne si chcel vediet mnozstvo kolko ich to splnuje ...

Kód: Vybrať všetko

SELECT COUNT(1) AS katx FROM pre_inzeraty WHERE inzerat_kat1*inzerat_kat2 < 20;
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

c-ine vôbec sa nechytáš na moju otázku...

Ide o to, že potrebujem vykonanať veľa podmienok vo WHERE a až potom to násobenie (to násobenie je len ku príkladu, je to taký dlhý zložitý vzorec a výpočet nie je vôbec jednoduchý). Tak by som potreboval zachovať to AS...

Ak ho nezachovám, tak ty ma zaujímalo v akom poradí sa vykonávajú AND podmienky vo WHERE (ak mám dotaz v tvare konjunktívnej normálnej forme - WHERE niečo and niečo and niečo). Vykoná sa to za sebou? Hľadal som Order of where clause evaluation a našiel som akurát:
(A and B)

If A is false, the whole statement is false, regardless of the value of
B. So there's no point in evaluating B at all.
Nestretol sa s tým niekto, v ako poradí sa vykonávajú tie podmienky, či je to takto alebo kde sa to dá zistiť?
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa audiotrack »

vykonávajú sa zľava doprava, a ak sa vyhodnotí prvá ako false tak ostatné sa už preskočia. Máš to presne napísané aj v tom čo si si zkopíroval.

k tomu pomenovanému countu: alias ide až za stlpec ktorý chceš pomenovať, nemôžeš ho dať za karteziánsky súčin ako to robíš. Takže by to malo byť

Kód: Vybrať všetko

SELECT COUNT((inzerat_kat1*inzerat_kat2)) AS katx FROM pre_inzeraty WHERE 1=1 HAVING katx < 20 
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

Heh skorá odpoveď :-) To si ma potešil, potom som to asi doriešil. Sorry to nemal byť karteziánsky súčin, len proste násobenie čísel - nejaký zložitý výpočet, ktorého výsledok si pomenujem.
audiotrack
VIP
VIP
Používateľov profilový obrázok
Príspevky: 25958
Registrovaný: 09 sep 2005, 18:39
Kontaktovať používateľa:

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa audiotrack »

tak to svoje tvrdenie generalizujem na súčin :) Či už karteziánsky alebo číselný
Everhard
Light Expert
Light Expert
Príspevky: 79
Registrovaný: 25 dec 2010, 14:41

Re: MYSQL Count obsahujuci AS

Príspevok od používateľa Everhard »

Len mne išlo o to, pomenovať si ten zložitý výpočet. Nie pomenovať výsledok z Count(). Ale to je už je jedno, ak sa poradie vykonáva zľava doprava, tak to AS nepoužijem.
Napísať odpoveď