NotesWhat is notes.io?

Notes brand slogan

Notes - notes.io

Lista zadań: SQL select
1. Wyświetl dane pracowników
SELECT * FROM EMPLOYEES
2. Wyświetl imiona pracowników
SELECT FIRST_NAME FROM EMPLOYEES
3. Wyświetl nie powtarzające się (unikalne) imiona pracowników
SELECT FIRST_NAME DISTINCT FROM EMPLOYEES
4. Wyświetl dane pracowników zarabiających powyżej 10000
SELECT * FROM EMPLOYEES WHERE SALARY>1000
5. Wyświetl dane pracowników zarabiających w zakresie (10000,11000)
SELECT * FROM EMPLOYEES WHERE SALARY>10000 AND SALARY<11000
6. Wyświetl dane "szefa" firmy (szefów, jeśli jest ich więcej niż jeden).
SELECT * FROM EMPLOYEES WHERE MANAGER_ID IS NULL
7. Wyświetl dane pracowników (nie szefa(-ów)).
SELECT * FROM EMPLOYEES WHERE MANAGER_ID IS NOT NULL
8. Wyświetl dane pracowników, z prefiksem numeru telefonu "590".
SELECT * FROM EMPLOYEES WHERE PHONE_NUMBER LIKE '590%'
9. Podaj ilość pracowników zarabiających powyżej 10000
SELECT COUNT (*) FROM EMPLOYEES WHERE SALARY>10000
10. Podaj ilość pracowników, których imiona zaczynają się na "P".
SELECT COUNT (FIRST_NAME) FROM EMPLOYEES WHERE FIRST_NAME LIKE 'P%'
11. Podaj ilość imion (unikalnych) zaczynających się na "P".
SELECT COUNT (DISTINCT FIRST_NAME) FROM EMPLOYEES WHERE FIRST_NAME LIKE 'P%'
12. Podaj ilość "menedżerów", dla pracowników, których pensja przekracza 10000 oraz prefiks nr telefonu jest równy "515".
SELECT COUNT (DISTINCT MANAGER_ID) FROM EMPLOYEES WHERE SALARY>10000 AND PHONE_NUMBER LIKE '515%'

SQL Select: grupowanie
1. Podaj ilość departamentów w poszczególnych lokalizacjach.
SELECT COUNT(*), LOCATION_ID FROM DEPARTMENTS GROUP BY LOCATION_ID;
2. Podaj ilość pracowników zarabiających poszczególne wartości pensji.
SELECT COUNT(*), SALARY FROM EMPLOYEES GROUP BY SALARY;
3. Podaj ilość departamentów w poszczególnych lokalizacjach, które nie mają przypisanego menadżera.
SELECT COUNT(*), LOCATION_ID FROM DEPARTMENTS WHERE MANAGER_ID IS NULL GROUP BY LOCATION_ID;
4. Podaj sumę wypłat w danym departamencie (ID) podlegającym pod danego menadżera (ID). Wynik posortować wg. departamentów i menedżerów.
SELECT MANAGER_ID, DEPARTMENT_ID, SUM(SALARY) FROM EMPLOYEES GROUP BY MANAGER_ID, DEPARTMENT_ID ORDER BY 1;
5. Podaj sumę wypłat w danym departamencie (ID) podlegającym pod danego menadżera (ID), jeśli suma ta jest większa niż 10000. Wynik posortować wg. Departamentów i menedżerów.
SELECT MANAGER_ID, DEPARTMENT_ID, SUM(SALARY) FROM EMPLOYEES HAVING SUM(SALARY)>10000 GROUP BY MANAGER_ID, DEPARTMENT_ID ORDER BY 1;

Rozszerzenie grupowania
1. Jak należy sformułować zapytanie, aby wykonały się podsumowania wynikające z następujących
grupowań:
group by manager_id, department_id, job_id
group by manager_id, department_id
group by manager_id, job_id
group by manager_id

SELECT MANAGER_ID, DEPARTMENT_ID, JOB_ID FROM EMPLOYEES GROUP BY ROLLUP(MANAGER_ID, DEPARTMENT_ID,JOB_ID) ORDER BY 1,2,3;

2. Podaj średnie pensje dla każdego identyfikatora pracy w działach o identyfikatorach 90, 100.
Wyświetl również podsumowania obliczonych średnich dotyczące użytych atrybutów wraz z
podsumowaniem całościowym. Wartość średnią podać z dokładnością 3 miejsc po przecinku –
round(a,b).
SELECT ROUND(AVG(SALARY),3), JOB_ID FROM EMPLOYEES WHERE DEPARTMENT_ID =90 OR DEPARTMENT_ID=100 GROUP BY GROUPING SETS((),JOB_ID) ORDER BY 1,2;
3. Wykorzystać funkcje grouping(atrybut) w celu zinterpretowania wierszy 58-60 z poniższego
przykładu.
select manager_id, department_id, grouping(manager_id),
grouping(department_id),sum(salary)
from employees
group by grouping sets ((manager_id, department_id), (manager_id), (department_id), ())
order by manager_id, department_id


select manager_id, department_id, sum(salary),
decode(grouping(manager_id),1,'ok',manager_id)as g1,
decode(grouping(department_id),1,'ok', department_id) as g2,
decode(grouping_id(manager_id, department_id),0,'bla', manager_id,department_id) as g12
from EMPLOYEES
group by cube(manager_id, department_id)

4. Wykonać bardziej czytelną prezentację wyników związanych z grupowaniem. W tym celu
wykorzystać decode(grouping(atrybut), 1, 'Tekst wyświetlany zamiast 1', atrybut)
5. Sprawdzić, że funkcja grouping(atrybut) działa również z innymi rozszerzeniami grupowania -
rollup, cube.

PARTYCJE OBLICZENIOWE
1. Zmodyfikować powyższy przykład, tak aby była wyświetlana średnia pensja w całej
firmie.
SELECT employee_id, department_id, salary, AVG(salary) OVER (PARTITION BY department_id) AS sred_w_dziale FROM employees ORDER BY 1;
2. Sformatować średnią z powyższego przykładu, aby była wyświetlana z wybraną
dokładnością.
SELECT employee_id, department_id, salary, (SELECT AVG(salary) from employees) AS srednia FROM employees order by 1

SELECT employee_id, department_id, salary, ROUND(AVG(salary) OVER (PARTITION BY department_id), 2) AS sred_w_dziale, ROUND (100*salary/(SUM(salary) over (PARTITION BY department_id)), 2) AS proc_udzial_pensji_w_dziale From employees
3. Dla działów o identyfikatorach 90 i 100 wyświetlić identyfikator pracownika,
identyfikator dział, w którym pracuje pracownik, pensję pracownika, średnią
pensję w dziale w którym pracuje oraz procentowy udział pensji pracownika w
pensjach pracowników z działu w którym pracuje.

SELECT employee_id, department_name, salary, ROUND(AVG(salary) OVER (PARTITION BY employees.department_id), 2) AS sred_w_dziale, ROUND (100*salary/(SUM(salary) over (PARTITION BY employees.department_id)), 2) AS proc_udzial_pensji_w_dziale
From employees left join departments on employees.department_id=departments.department_id;
     
 
what is notes.io
 

Notes.io is a web-based application for taking notes. You can take your notes and share with others people. If you like taking long notes, notes.io is designed for you. To date, over 8,000,000,000 notes created and continuing...

With notes.io;

  • * You can take a note from anywhere and any device with internet connection.
  • * You can share the notes in social platforms (YouTube, Facebook, Twitter, instagram etc.).
  • * You can quickly share your contents without website, blog and e-mail.
  • * You don't need to create any Account to share a note. As you wish you can use quick, easy and best shortened notes with sms, websites, e-mail, or messaging services (WhatsApp, iMessage, Telegram, Signal).
  • * Notes.io has fabulous infrastructure design for a short link and allows you to share the note as an easy and understandable link.

Fast: Notes.io is built for speed and performance. You can take a notes quickly and browse your archive.

Easy: Notes.io doesn’t require installation. Just write and share note!

Short: Notes.io’s url just 8 character. You’ll get shorten link of your note when you want to share. (Ex: notes.io/q )

Free: Notes.io works for 12 years and has been free since the day it was started.


You immediately create your first note and start sharing with the ones you wish. If you want to contact us, you can use the following communication channels;


Email: [email protected]

Twitter: http://twitter.com/notesio

Instagram: http://instagram.com/notes.io

Facebook: http://facebook.com/notesio



Regards;
Notes.io Team

     
 
Shortened Note Link
 
 
Looding Image
 
     
 
Long File
 
 

For written notes was greater than 18KB Unable to shorten.

To be smaller than 18KB, please organize your notes, or sign in.