Autor Zpráva
raxon
Profil *
Ahoj,
mám tabulku id, kategorie. Když ji vypíšu vypadá něják takto:
id kategorie
1 elektro
2 nabytek
3 zelenina
4 elektro
5 elektro
...

potreboval bych vypsat počet věcí, na kterých se budu ptát v dotazu v limitu 0,4.
tzn. ze vezmu prvni 4 zaznamy, a v selectu bude co chci spočítat ... když elektro, tak to vrátí 2, když nabytek, tak 1.
Lze to nějáým způsobem v MySQL udělat?
Příkaz WHERE použit nemůžu, protože ten vybere data i za id 4. Chci vybrat pouze prvni 4 radky a ty spocitat.

Předem děkuji za odpověď
Joker
Profil
raxon:
To správné je GROUP BY.
SELECT count(id), kategorie FROM tabulka WHERE id < 5 GROUP BY kategorie
raxon
Profil *
Joker:
existuje i zpusob jakym vyberu prvni 4 zaznamy bez zavislosti na id? Bude to totiž seřazeno od největšího po nejmenší.
A jeste bych potřeboval do toho dotazu zahrnout napr. kategorie='elektro' abych věděl, že výsledné číslo je z kategorie elektro.
Dá se to?
Joker
Profil
raxon:
Jde to, ale asi bude potřeba vnořený dotaz:

SELECT count(id), kategorie FROM (SELECT id, kategorie FROM tabulka ORDER BY id LIMIT 4) GROUP BY kategorie

Dodatek: „Bude to totiž seřazeno od největšího po nejmenší.“ - no pak záleží, podle čeho se to má řadit, to se dá do ORDER BY
Kajman_
Profil *
raxon:
abych věděl, že výsledné číslo je z kategorie elektro

Ke které kategorii ten počet patří zjistíte podle druhého sloupečku (spočítá to všechny obsažené kategorie najednou).

Joker:
Ještě bude potřeba za závorkou s poddotazem nějaký alias.
raxon
Profil *
Jojo super mam to, děkuji moc všem :)

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0