IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 7. diel - SQLite - Radenie, Limit a agregačné funkcie

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Lukáš Ladma:27.3.2023 20:20

V roce 2023 již, SQL vypíše při:
SELECT "jmeno", "prijmeni" FROM "uzivatele" ORDER by "prijmeni";
všechny uživatele bez výjimky.

SQL podporuje kompletně UTF-8. Kdyby to někoho zajímalo.

 
Odpovedať
27.3.2023 20:20
Avatar
Luboš Štancl:15.5.2023 23:08

Schází mi u tohoto tématu doplnění pravidel pořadí jak mohou být za sebou řazeny COUNT, SUM, MAX, MIN, AVG, GROUP BY, ORDER BY, AS.

Odpovedať
15.5.2023 23:08
The first rule of programming: If it works, don't touch it.
Avatar
Marie Pazoutova:28.6.2023 12:55

V lekci je na začátku agregačních funkcí příklad

SELECT COUNT(*) FROM "uzivatele" WHERE "pocet_clanku" > 0;

zatímco během prezenčního školení s lektorem zaznělo, že
"použiju-li agregační funkci, např. COUNT, a chci podmínku, musím použít HAVING a ne WHERE"
(nějak podobně to uvádí i cheat sheet). Bylo by fajn připojit nějaké podrobnější vysvětlení tohoto tématu, tak aby v člověku nevznikal dojem, že si sdělení protiřečí. (The WHERE clause places conditions on the selected columns, whereas the HAVING clause places conditions on groups created by GROUP BY clause. - asi tak nějak podobně)

 
Odpovedať
28.6.2023 12:55
Avatar
Petr Dostál
Člen
Avatar
Petr Dostál:4.7.2023 10:06

Dotaz u SUM je špatně u datumu narození. Je třeba přidat nuly jinak to dá jiné číslo ve výsledku. Uvádíte dotaz: SELECT SUM("pocet_clanku") FROM "uzivatele" WHERE "datum_narozeni" > '1980-1-1';
Správně musí být na konci datum '1980-01-01'

Odpovedať
4.7.2023 10:06
Nikdy není pozdě
Avatar
Hana Svobodová:1.8.2023 15:44

Užitečné funkce. Jen ve větě "DESC je třeba vždy uvést, vidíte, že řazení podle příjmení je normálně sestupné, protože jsme DESC napsali jen k pocet_clanku." má být, že řazení podle příjmení je vzestupné.

 
Odpovedať
1.8.2023 15:44
Avatar
Karel Zaoral
Člen IT Redactor Gang
Avatar
Odpovedá na Marie Pazoutova
Karel Zaoral:26.9.2023 14:25

Ahoj Marie, tvůj příklad a to, co lektor řekl během školení, se týká dvou různých scénářů.

WHERE s agregační funkcí: Když provádíš agregační funkci nad celým souborem dat, ale chceš filtrovat záznamy před agregací, používáš WHERE. V tvém příkladu:

SELECT COUNT(*) FROM "uzivatele" WHERE "pocet_clanku" > 0;

filtruješ uživatele s pocet_clanku větším než 0 PŘED provedením funkce COUNT.

HAVING se používá k filtraci výsledků agregačních funkcí. Představ si, že chceš vědět, kolik uživatelů v každém městě má více než 10 článků:

SELECT "mesto", COUNT(*) AS "pocet_uzivatelu"
FROM "uzivatele"
GROUP BY "mesto"
HAVING COUNT(*) > 10;

Zde nejprve seskupíš podle mesto, pak spočítáš počet uživatelů v každém městě a nakonec s použitím HAVING filtruješ města, která mají více než 10 uživatelů.

WHERE se používá k filtrování záznamů před agregací, zatímco HAVING se používá k filtrování výsledků po agregaci.

 
Odpovedať
26.9.2023 14:25
Avatar
Ján Kisty
Člen
Avatar
Ján Kisty:12. septembra 19:41

Chýbajú data (priložený súbor), s ktorými pracuje článok.

 
Odpovedať
12. septembra 19:41
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!