Quote from: Rajo on 06.04.2012, 17:36:00Ale mne to robí pri akomkoľvek zdrojáku
pošli zdrojak, vyskúšam
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Zobrazi prspevky MenuQuote from: Rajo on 06.04.2012, 17:36:00Ale mne to robí pri akomkoľvek zdrojáku
pošli zdrojak, vyskúšam
Quote from: esperian on 04.04.2012, 00:53:331. do zatvorky k V piseme len vtedy ak mame viac stlpcov, alebo aj vtedy ak mame len jeden ?Zátvorka nemusí byť len pri V, ale aj pri akomkoľvek MVx.
Quote from: esperian on 04.04.2012, 00:53:332. department_id, job_id ktore je pred Fkom, je tam preto lebo je to group podla department_id, job_id ?V podstate áno. Za GROUP BY píšeš všetky stĺpce zo SELECTu okrem agregačných. Agregačné funkcie (za Fkom) sa píšu na konci, aby boli od "neagragačných stĺpcov" oddelené. Ak to napíšeš opačne, vyzeralo by to tak, že ideš počítať COUNT aj department_id aj job_id
Quote from: esperian on 04.04.2012, 00:53:33To Fko označuje, že za ním budeš definovať agregačné funkcie (COUNT, AVG, SUM, MAX, MIN a pod.). Nič viac.
3. za Fko davam vsetky "stlpce" ale kedze department_id, job_id je uz red fkom, tak to tam uz dalsi krat nedavam ?
Quote from: xxx3 on 02.04.2012, 19:14:42Skript OK. V RA treba department_id písať pred F, tam nemáš nijakú agg. funkciu. Teda:
este toto, dobre je takto? asi 11. uloha
select SUM(salary), department_id from hr.employees group by department_id;
V(sucet, department_id) ← F SUM salary, department_id (employees)
Quote from: xxx3 on 02.04.2012, 17:55:258. cvičenie, príklady na cvičenie, príklad č. 5, strana 10/13
no ja v tych vyriesenych prikladoch nevidim taky priklad kde by boli v jednom priklade pouzite dve funkcie .. vsade je len po jednej ... kde tam vidis taky priklad ? .. tu je pouzite AVG aj COUNT .. ale v tych vzorovych je vsade len bud AVG alebo COUNT ... nikde nie su obe v jednom
Quote from: xxx3 on 02.04.2012, 17:35:45Nvm či je to zle, ale čo sú vzorové príklady ku cvičeniam, tak tam je F len raz. Takže by som sa toho radšej držal
dik .. a je to zle ked tam je viackrat ? .. ci je to jedno ?
Quote from: xxx3 on 02.04.2012, 17:05:51DDL skript je OK. V RA netreba písať pred každou agg. funkciou F. Stačí raz.
toto mam dobre takto?
select AVG(salary), COUNT(*) "Total" from hr.employees where department_id=60;
MV1 ← sigma department_id=60 (employees)
V ← F AVG salary, F COUNT employee_id (MV1)
Quote from: Rajo on 02.04.2012, 00:54:31Ja by som dal
select max(salary), round(avg(salary)) from hr.employees;
algebra bude:
V(max(salary),round(avg(salary)) ) <-- F MAX salary, AVG salary (employees)
alebo:
V(max(salary),round(priemer) ) <-- F MAX salary, AVG salary (employees)
alebo:
V(round(priemer) ) <-- F MAX salary, AVG salary (employees)
Quote from: zaky on 01.04.2012, 20:35:11Ak sa nemýlim, tak je to preto, lebo v sedmičke pracuješ len s jedným stĺpcom. Teda do zátvorky nemusíš nič písať. Akonáhle robíš s viacerými stĺpcami, musíš to uviesť do zátvorky.
7. select avg(salary) from hr.employees where department_id = 50;
MV1 ← σ department_id=50 (employees)
V ← F AVG salary (MV1)
8. select department_id, avg(salary) from hr.employees
group by department_id
order by 2;
V(department_id, priemer) ← department_id F AVG salary (employees)
mam dotaz, ze preco v tom druhom je tam v tej zatvorke V( priemer) a v prvom nieje, resp. kedy sa to dava, pls skuste mi vysvetlit
to su vzorove riesene priklady z moodla
Quote from: tino8 on 29.03.2012, 22:14:10Keby len to. Mňa najviac rozčuľuje fajčenie vo vozidle. Teraz už je na to zákon, ale čo si pamätám, tak 7-8 rokov dozadu vodiči bežne fajčili za jazdy a vozom sa pekne krásne preháňala tabakovo-nikotínová dymová clona. Ale aj teraz sa stáva, že vodič je počas prestávky lenivý vyjsť von z vozu a zapáli si dnu.
tak to asi nechodis na mhd casto... uvediem jeden priklad: startuje o minutu skor ako ma, a aj ked vidi ze bezis, jednoducho zatvori predtebou dvere a odide
Quote from: xxx3 on 28.03.2012, 15:25:18Dobre vieš V piatok máme na programe Zámenu prednášok DBS namiesto OS. A v pondelok opačne.
a teraz v piatok nie je OS prednaska, dobre viem ?
Quote from: Rajo on 25.03.2012, 02:35:42No paráda Tu teda asi nebudú vypísané všetky formátyQuote from: veteran on 24.03.2012, 03:17:19Quote from: Rajo on 24.03.2012, 02:56:27Problém je, že z extractu vieš vydolovať len jeden údaj
lenže ak si extractuješ mesiac napríkald zo sysdate tak ti vypíše "3" , nie "03" ...select EXTRACT(MONTH FROM sysdate) from dual;
select to_char(sysdate,'YYYYfmMmfmDd') "Current Date"from dual;
Quote from: xxx3 on 25.03.2012, 00:11:36"Mesiace" tam dať nemôžeš, pretože najskôr sa vykonáva klauzula WHERE a vtedy ešte nepoznáme kolónku "Mesiace" (v tom čase to meno ešte nemá) Za XXX dosaď to, čo neskôr pomenuvávaš ako "Mesiace", teda TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)). Nie je to síce pekné riešenie, ale funguje. Krajšie sa to dá urobiť jedine cez two-level select-y (IMHO zbytočná robota).
a ta dalsia uloha, mam toto: SQL> SELECT employee_id,last_name, TRUNC(MONTHS_BETWEEN(SYSDATE, HIRE_DATE)) "MESIACE" from hr.employees WHERE XXX>200 order by "MESIACE" DESC;
co mam dat miesto XXX ? ... "MESIACE" to neberie
a dik za ten concat
Quote from: xxx3 on 25.03.2012, 00:02:03Dáš funkciu concat do funkcie concat (najprv hviezdička z jednej strany, potom z druhej).
jak spravim toto: 5. Ohraničte last_name spredu aj zozadu symbolom * ?
LPAD a RPAD su na doplnenie, lenze tam treba zadat dlzku, aku maju mat vsetky retazce a zvysok mi doplni hviezdickami ...
Quote from: Rajo on 24.03.2012, 02:56:27Problém je, že z extractu vieš vydolovať len jeden údaj
lenže ak si extractuješ mesiac napríkald zo sysdate tak ti vypíše "3" , nie "03" ...select EXTRACT(MONTH FROM sysdate) from dual;
Quote from: Rajo on 23.03.2012, 15:47:08AFAIK, v Oracli existuje len jedna číselná reprezentácia mesiaca a to MM (no a ptm ešte RM, rímske čísla). Aj mne to píše 03, ale myslím, že je to OK.
lebo ja som to riešil tak, že mi to píše v tvare "YYYYMMDD" čiže pre dnešny dátum by mi vypisalo "20120323" ... a ona nulu nemá vo výsledku, vadí to? alebo ako to ona riešila?
Quote from: esperian on 22.03.2012, 22:51:57Ja mám o jeden výsledok viac (16). Ten posledný už (pre dnešný deň) pracuje viac ako 200 mesiacov (200 mesiacov a 9 dní).
cv6 - 6. uloha mate to tak ako vo vysledkoch ??
Quote from: maros67 on 21.03.2012, 00:03:52purge recyclebin;
Ako uplne odstranim tabulku?? myslim tym aj tie haky baky co tam ostanu ked dam select * from cat; ?
Quote from: xxx3 on 20.03.2012, 01:37:10Existujú určite prípady, kedy je to oveľa výhodnejšie písať opačne (nič konkrétne mi ale nenapadá ). Ale nemyslím, že sa dá niečo pokaziť tým, že sa to napíše "štandardne" (PROJECT stĺpce (SELECT podmienky)).
... ale tak radsej davam vsade nasjkor podmienku a potom vyberanie ... tak to nemoze byt zle, snad
Quote from: xxx3 on 20.03.2012, 00:14:28A čo v prípade, ak máš vypísať len také stĺpce, ktorých sa netýka podmienka? Dajme tomu, že máš vybrať first_name a last_name, ale podmienka sa týka napr. hire_date. Ty si najprv vyberieš všetky riadky z tabuľky, ale v nich len stĺpce first_name a last_name. Ako z tohto výberu potom určíš, či je splnená daná podmienka pre hire_date? Nijak. Musíš to urobiť presne opačne. Najprv otestovať podmienku a z riadkov, ktoré ju spĺňajú povyberať tie stĺpce, ktoré treba.
nie ? A kedy je to ako ? ... nie je jedno ci naskor vyberiem stlpce z tabulky ktore mi treba a potom z nich povyberam len tie raidky, ktore splnaju pomienku ... alebo ci najskor vyberiem vsetky raidky splnajuce podmienku a potom z niych vyberiem len tie stlpce ktore potrebujem vypisat ?
vysledok je rovnaky, nie ?
Quote from: xxx3 on 19.03.2012, 23:53:09Nie je to jedno.
ok, dakujem ... a este toto, ze ked pisem tu relacnu algebru tak je jedno ci naskor vyberiem stlpce cez "PI" a az potom robim tu podmienku alebo opacne ?
Quote from: xxx3 on 19.03.2012, 23:39:31SELECT UNIQUE alebo SELECT DISTINCT. Ak si old-school, tak použi to prvé, ak chceš ísť podľa najnovších Oracle trendov, použi to druhé Sú to ekvivalentné príkazy
a este s tymto by som potreboval pomoct: 11. Vypíšte spz áut, ktorým boli poskytnuté služby. Duplicity vylúčte.
Ako vylucim duplicity ?
Quote from: xxx3 on 19.03.2012, 23:14:27Mám pocit, že chyba bude vo výsledkoch. Keď si dám vypísať všetkých zamestnancov (select first_name, last_name, department_id from hr.employees), tak NULL pri department_id má len jeden (Grant Kimbereley).
6. uloha: Zistite first_name, last_name zamestnancov, ktorí nie sú v žiadnom oddelení. Pre kontrolu vypíšte aj id oddelenia.
som dal: select first_name, last_name, department_id from hr.employees where department_id is null;
a mi dalo len jeden riadok ... vo vysledkoch je, ze ma byt 72 raidkov .... co mam zle ?
Quote from: xxx3 on 19.03.2012, 22:52:24Zapisuje sa, ale na prednáške to nebolo, takže som to nepísal.
dik .. a do toho zapisu relacnej algebry sa nezapisuje to order by nijak ?