Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Wangarad 23. 06. 2022, 09:43:52
-
Zdravim.
Ak mam v tabulke len jeden stlpec a obsahuje data A,B,C,A,A,B,C ako ich efektivne spocitat ked neviem hodnotu A,B,C ?
-
ak som to spravne pochopil, tak v bunke tabulky je zoznam hodnot oddelenych oddelovacom. potom staci vytiahnut hodnotu z tabulky, prehnat ju v PHP funkciou explode a vysledkom je pole samostanych hodnot. nasledne je s nimi mozne robit dalsie operacie
dalsia moznost je si to splitnut na urovni sql dotazu. ak je to MySQL tak potom sa pozriet na funkciu SUBSTRING_INDEX()
-
co znamená "spocitat" a jaky je format tech A B C (variabilni delka, pritomnost znaku ","), jsou oddelene znakem ","?
A co z toho chces pocitat, ked ich nevis (neni tam nic ineho :D,E,F)
-
Za predpokladu ze to mas ulozene 1 hodnota na 1 zaznam, tak proste:
SELECT stlpec, count(stlpec) FROM tabulka GROUP BY stlpec;
za predpokladu ze stlpec je varchar a su v nom CSV zaznamy, tak miesto riesenia efektivity dotazu riesit efektivitu struktury, pretoze na tomto nebude efektivny ziadny dotaz.
-
nevim, jestli to chapu spravne, ale nacist radek do PHP a tam:
count(explode(',', $sloupec))
-
Pripadne je mozne, ak ide o postgres:
WITH
hodnoty AS (
SELECT string_to_table(csv,',') AS hodnota
FROM tabulka
)
SELECT hodnota, count(hodnota)
FROM hodnoty
GROUP BY hodnota
To je v prostredi ktore je optimalizovane na spracovanie dat. Riesit to v textovom preprocesori je najmenej efektivna cesta (aby nedoslo k omylu tak php pouzijem pomerne casto, ak mu zodpoveda usecase...)