Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze – Lekce 7 - SQLite - Řazení, Limit a agregační funkce

Zpět

Upozorňujeme, že diskuze pod našimi online kurzy jsou nemoderované a primárně slouží k získávání zpětné vazby pro budoucí vylepšení kurzů. Pro studenty našich rekvalifikačních kurzů nabízíme možnost přímého kontaktu s lektory a studijním referentem pro osobní konzultace a podporu v rámci jejich studia. Toto je exkluzivní služba, která zajišťuje kvalitní a cílenou pomoc v případě jakýchkoli dotazů nebo projektů.

Komentáře
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.

 
Odpovědět
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.

Odpovědět
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ě)

 
Odpovědět
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'

Odpovědět
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é.

 
Odpovědět
1.8.2023 15:44
Avatar
Karel Zaoral
Tvůrce
Avatar
Odpovídá 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.

 
Odpovědět
26.9.2023 14:25
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.