IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
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: PostgreSQL nejake cvičenia na prikazy JOIN a poddotazy

Aktivity
Avatar
Patrik Živčák:1.11.2018 19:19

Ahojte mam taký problém neviete poradiť nejaké cvičenia alebo čo na postgeSQL zamerané všeobecne alebo aspoň na poddotazy a použitie JOIN (dotaz cez viac tabuliek). Čo sa tyká tutorialu POSTGRESQL cely som si ho kúpil a v 11 kde su cvičenia som spravil prvých 9 bez väčších problémov ale príklad 10 a 11 som už nevedel všeobecne mam problém vymyslieť čo tam napísať aby som splnil úlohu. Nejaká rada stalo sa mi, že pri joinoch keď som robil tu lekciu tak 7 tak pochopiť čo dať do selectu a ako to suvisi s s tym čo dať do joinu tak jeden riadok som pisal cez hodinu kym som ho pochopil a napisal sam bez pozerania

Zkusil jsem: Skušal som lekcie 1-10 + lekciu 11 čo su priklady a tam mam od prikladu 11 strašny problem vôbec chapať ako to napisane riešenie funguje a ine najsť neviem.

Chci docílit: Naučiť sa databazy tak aby som mohol prejsť na C# a .NET a nejako to spojiť -> potrebujem to v praci

 
Odpovědět
1.11.2018 19:19
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:2.11.2018 7:49

Pokud nenapises konkretni problem a odkazujes se na zadani, ktere je v literature, kterou 99.99% nema, tak je tezke rici, proc ti konkretni lekce nesly.

Jestli chces nejake zadani, tak treba zajimavy dotaz je, kdyz potrebujes vypsat vsechny knizky, ktera ma aspon jednoho ze asi 20 seznamu autoru. A nebo, ktera ma vsechny zadane autory, obvykle 3.
(Vedecke publikace pise obvykle tym autoru, 1-20 lidi, bezne asi 2-4 (vedouci oddeleni + laboranti); do autorstvi u citaci se pisou casto jen 3 + 'a spol' (ale to je bug, kterym bych se nezatezoval))

Ono, take hodne zavisi na tom, jakou grafickou upravu dotazu zvolis.
google = left join examples

SELECT
    c.customerNumber,
    c.customerName,
    orderNumber,
    o.status
FROM
    customers c
        LEFT JOIN orders o ON c.customerNumber = o.customerNumber
WHERE
    orderNumber IS NULL;

Dotaz resi tabulku C. K ni pripoji data z tabulky O podle shody sloupcu customerNumber.
http://www.mysqltutorial.org/…ft-join.aspx

U toho vyhledavani jmen se zapotis mnohem vic. Hlavne, treba, kdyz jich zadam 10, aby mel vysledek behem par ms a ne, aby dotaz JOINEM nabaloval tabulku na tabulku a vytvarel jednu obri s poctem radku n * n * n * n * n ... :)

Editováno 2.11.2018 7:49
 
Nahoru Odpovědět
2.11.2018 7:49
Avatar
macop
Člen
Avatar
Odpovídá na Patrik Živčák
macop:2.11.2018 15:18

Ja by som na to isiel inak.

Skusil by som si vymysliet nejaky projekt, kludne aj nieco z prace, aby ta to motivovalo k dokonceniu.

Napis si zadanie, nemusi byt extra dlhe, skor nieco kratsie (par tabuliek).

Kludne k tomu zadaniu zacni kreslit aj formy, ako by mala aplikacia vypadat, keby bola ako desktop napr.

Rozmyslaj ako by asi mali vypadat procky, ktore by tie formy plnili, ake by asi potrebovali parametre.

Zacni uplne jednoducho s evidenciou osoby, a postupne pridavaj veci ktore potrebujes.

Ak narazis na konkretny problem tak sa spytaj.

Myslim ze toto ti pomoze viac.

 
Nahoru Odpovědět
2.11.2018 15:18
Avatar
Patrik Živčák:7.11.2018 7:46

a niečo konkrétnejšie môj problém je napr. prikaz GROUP BY kým mam jednu tabuľku a naplnenú napr. menami a dam group by spolu s COUNT(*) napr. spocitam kolko krat sa dane meno vyskytuje. Problém nastáva keď mam viac tabuliek prepojených cez napr. INNER JOIN potom mi skoro vždy začne chyby vyhadzovat najčastejšie v zmysle, že vraciam viac riadkov alebo tak a niekedz tie data čo chcem vratit rozhadže tak, že ani boh potom nevie čo je čo

 
Nahoru Odpovědět
7.11.2018 7:46
Avatar
Odpovídá na Patrik Živčák
Patrik Živčák:7.11.2018 9:01

Konkrétny príklad spravil som evidenciu aut, šoferov a tak a chcem vyselektovať id_vozidla, popis, farbu ide to ak chcem pridať pocet najazdených km cez podselect prestane isť lebo podselect vracia 2 hodnoty miesto jednej a neviem ako to riesiť

select
ev.id_vozidla,
tv.popis_typ_vo­zidla,
tv.farba
--(select SUM(prejazdene_km) as prejazdene_km from jazdy j inner join evidencia_vozidla ev on (ev.id_vozidla = j.id_vozidla) where ev.id_vozidla = j.id_vozidla group by ev.id_vozidla) as prejazdene_km
from evidencia_vozidla ev
inner join typy_vozidiel tv on (tv.id_typ_vozidla = ev.id_typ_vozidla)

 
Nahoru Odpovědět
7.11.2018 9:01
Avatar
plelovsky
Člen
Avatar
plelovsky:7.11.2018 12:55
select
ev.id_vozidla,
tv.popis_typ_vozidla,
tv.farba,
(select SUM(prejazdene_km) from jazdy j where j.id_vozidla = ev.id_vozidla) as prejazdene_km
from evidencia_vozidla ev
inner join typy_vozidiel tv on tv.id_typ_vozidla = ev.id_typ_vozidla
 
Nahoru Odpovědět
7.11.2018 12:55
Avatar
Odpovídá na plelovsky
Patrik Živčák:8.11.2018 7:59

ahoj máš nejakú radu ohľadom PL/SQL v postgresSQL ako začať nejaký, tutorial, cvičenia tlačia ma do toho v práci ledva som prešiel ten tutoriál to bol 10 dňový rýchlokurz teda prvých 15 lekcii v postgrese tu na itnetwork a už sa šefka pytala na to PL/SQL procedury, funkcie či už viem

 
Nahoru Odpovědět
8.11.2018 7:59
Avatar
plelovsky
Člen
Avatar
plelovsky:8.11.2018 11:12

Mám: http://lmgtfy.com/?…

 
Nahoru Odpovědět
8.11.2018 11:12
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 8 zpráv z 8.