Author Topic: DBS  (Read 49840 times)

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #125 on: 25.03.2012, 19:23:28 »
aha, aj ma to napadlo, ze to bude opak, len som bol lenivy to vyskusat :D

Schat

  • Newbie
  • *
  • Posts: 8
    • View Profile
Re: DBS
« Reply #126 on: 28.03.2012, 14:15:54 »
Prosim vas, ake je heslo do moodla ? zacina na "d" 
vopred dik =) A este ak si to pamatate kedy ma pani T. konzultacne hodiny.

Wolfdale

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 489
  • /root
    • View Profile
Re: DBS
« Reply #127 on: 28.03.2012, 14:50:49 »
Ak sa dobre pamätám, každá skupina má iné heslo.

Ešte sme to nedokončili celkom, ale takmer sme už začali.

zaky

  • Jr. Member
  • **
  • Posts: 95
    • View Profile
Re: DBS
« Reply #128 on: 01.04.2012, 20:35:11 »
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

92% teenagerů neposlouchá svojí maminku. Patříš-li mezi zbývajících 8%, dej si tohle do podpisu

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #129 on: 01.04.2012, 20:41:31 »
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
Ak 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.

Luk1

  • Sr. Member
  • ****
  • Posts: 401
    • View Profile
Re: DBS
« Reply #130 on: 01.04.2012, 20:52:58 »
mozete tu postnut to pdfko s tymi vzorovymi prikladmi ? dik

Za slovensky narod bije mi srdce v hrudi.

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #131 on: 01.04.2012, 20:56:21 »
tu je, niekde ku koncu su tie priklady

Rajo

  • Sr. Member
  • ****
  • Posts: 346
    • View Profile
Re: DBS
« Reply #132 on: 02.04.2012, 00:54:31 »
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)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #133 on: 02.04.2012, 01:01:13 »
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)
Ja by som dal

V(maximum,round(priemer)) <-- F MAX salary, AVG salary (employees)

Wolfdale

  • Global Moderator
  • Sr. Member
  • *****
  • Posts: 489
  • /root
    • View Profile
Re: DBS
« Reply #134 on: 02.04.2012, 03:49:05 »
Tiež tak som to dal.

Ešte sme to nedokončili celkom, ale takmer sme už začali.

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #135 on: 02.04.2012, 17:05:51 »
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)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #136 on: 02.04.2012, 17:15:31 »
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)
DDL skript je OK. V RA netreba písať pred každou agg. funkciou F. Stačí raz.

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #137 on: 02.04.2012, 17:35:45 »
dik .. a je to zle ked tam je viackrat ?  .. ci je to jedno ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #138 on: 02.04.2012, 17:52:30 »
dik .. a je to zle ked tam je viackrat ?  .. ci je to jedno ?
Nvm č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 ;)

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #139 on: 02.04.2012, 17:55:25 »
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

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #140 on: 02.04.2012, 18:58:04 »
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
8. cvičenie, príklady na cvičenie, príklad č. 5, strana 10/13

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #141 on: 02.04.2012, 19:12:47 »
aha, OK ... 8. cviko som este nepozeral

xxx3

  • Hero Member
  • *****
  • Posts: 1010
    • View Profile
Re: DBS
« Reply #142 on: 02.04.2012, 19:14:42 »
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)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #143 on: 02.04.2012, 19:24:08 »
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)
Skript OK. V RA treba department_id písať pred F, tam nemáš nijakú agg. funkciu. Teda:

V(sucet, department_id) ← department_id F SUM salary (employees)
« Last Edit: 11.04.2012, 16:13:20 by veteran »

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: DBS
« Reply #144 on: 04.04.2012, 00:53:33 »

select department_id, job_id, count(*) from hr.employees group by department_id, job_id order by 1;

V(department_id, job_id, pocet) ← department_id, job_id F COUNT employee_id (employees)

1. do zatvorky k V piseme len vtedy ak mame viac stlpcov, alebo aj vtedy ak mame len jeden ?
2. department_id, job_id ktore je pred Fkom, je tam preto lebo je to group podla department_id, job_id ?
3. za Fko davam vsetky "stlpce" ale kedze department_id, job_id je uz red fkom, tak to tam uz dalsi krat nedavam ?

dobre rozumiem ?

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #145 on: 04.04.2012, 01:25:07 »
1. 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. ;)

Platí, že do zátvorky sa píšu názvy stĺpcov vtedy, ak je na pravej strane agregačná funkcia. A potom tú zátvorku opakuješ pri ďalších nasledujúcich MVx a na konci aj pri V.

Keď máš len jeden stĺpec, väčšinou nepíšeš nič. To sa stáva vtedy, keď máš len jednu agregačnú funkciu, ktorá je zároveň jediným stĺpcom na výpis.

Ak máš však vypísať len round(count(employee_id)), tak v RA ku V napíšeš zátvorku: V(round(pocet)) ← F COUNT employee_id (employees), hoci tam máš len jediný stĺpec.

2. 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


3. za Fko davam vsetky "stlpce" ale kedze department_id, job_id je uz red fkom, tak to tam uz dalsi krat nedavam ?
To Fko označuje, že za ním budeš definovať agregačné funkcie (COUNT, AVG, SUM, MAX, MIN a pod.). Nič viac.

esperian

  • Hero Member
  • *****
  • Posts: 873
    • View Profile
Re: DBS
« Reply #146 on: 04.04.2012, 01:27:08 »
dik

Rajo

  • Sr. Member
  • ****
  • Posts: 346
    • View Profile
Re: DBS
« Reply #147 on: 06.04.2012, 23:51:46 »
select first_name,last_name,job_title, department_name from hr.employees join hr.jobs using (job_id) join hr.departments using (department_id) where job_title like '%Manager%';

RA:
Code: [Select]
MV1 <-- σ job_title like '%Manager%' jobs
MV2 <-- employees  |><|  job_id = jov_id jobs
MV3 <-- MV2 |><| department_id = department_id departments
V <-- π first_name,last_name,job_title, department_name (MV3)

alebo:
Code: [Select]
MV1 <-- employees  |><|  job_id = jov_id jobs
MV2 <-- MV1 |><| department_id = department_id departments
MV3 <-- σ job_title like '%Manager%' jobs
V <-- π first_name,last_name,job_title, department_name (MV3)

veteran

  • Hero Member
  • *****
  • Posts: 956
    • View Profile
Re: DBS
« Reply #148 on: 07.04.2012, 00:16:17 »
Quote
MV1 <-- employees  |><|  job_id = jov_id jobs
MV2 <-- MV1 |><| department_id = department_id departments
MV3 <-- σ job_title like '%Manager%' jobs
V <-- π first_name,last_name,job_title, department_name (MV3)


Keď v MV3 zmeníš to jobs na konci na MV2, bude to "nagyon jó"  ;)

Rajo

  • Sr. Member
  • ****
  • Posts: 346
    • View Profile
Re: DBS
« Reply #149 on: 07.04.2012, 00:45:18 »
Quote
MV1 <-- employees  |><|  job_id = jov_id jobs
MV2 <-- MV1 |><| department_id = department_id departments
MV3 <-- σ job_title like '%Manager%' jobs
V <-- π first_name,last_name,job_title, department_name (MV3)


Keď v MV3 zmeníš to jobs na konci na MV2, bude to "nagyon jó"  ;)

raz má selekciu v tých riešených úlohach ako prvú a raz pod join...kedy ma byť tak a kedy tak? :D