Najnowsze


SQL Podstawy. Zapytania SQL. Przykłady i zadania



Zadanie 1

Utwórz zapytanie SQL, które zwróci wszystkie kolumny z tabeli Osoby, dla osób mających ponad 50 lat.

Tabela osoby:
id
imię
wiek

Uporządkuj osoby wg wieku od najstarszych do najmłodszych.

Rozwiązanie:
select id, imie, wiek
from osoby
where wiek>50
order by wiek desc

Zadanie 2

 W tym wyzwaniu musisz utworzyć wyciąg UNION, istnieją dwie tabele ussales i eusales, które firma macierzysta śledzi każdą sprzedaż w odpowiedniej lokalizacji w każdej tabeli, musisz wszystkie filtrować cenę sprzedaży, aby zwracała tylko wiersze ze sprzedażą większą niż 50,00 . Otrzymano zadanie połączenia tych danych do przyszłej analizy. Zamów w USA, a następnie w sprzedaży UE.

  (us/eu)sales table schema

    id
    name
    price
    card_name
    card_number
    transaction_date

resultant table schema

    location (EU for eusales and US for ussales)
    id
    name
    price (greater than 50.00)
    card_name
    card_number
    transaction_date


select *, 'US' as location
from ussales
where price>50
union all
select *, 'EU'
from eusales
where price>50
 

Zadanie 3


Uzyskaj listę użytkowników zawierającą nazwę i wiek użytkowników pełnoletnich, czyli mających 18 lub więcej lat

Tabela uzytkownicy
nazwa
wiek


Rozwiązanie;
select nazwa, wiek
from uzytkownicy
where wiek >=18

Zadanie 4


 Uzyskaj listę podróżnych spoza USA, Meksyku i Kanady

Tabela podrozni
nazwa
kraj

 
select nazwa, kraj
from podrozni
where kraj not in ('USA','Meksyk','Kanada')



Zadanie 5

Uzyskaj listę studentów, którzy nie zapłacili czesnego

Tabela studenci
id
imie
nazwisko
semestr
czesne_wplacone

select *
from studenci
where czesne_wplacone=false


Zadanie 6

Uzyskaj listę 5 najlepiej sprzedających się ksiażek

Tabela ksiazki
tytul
autor
ilosc_sprzedanych



select *
from books
order by copies_sold desc
limit 5

Zadanie 7

Wyświetl listę klanów wraz z sumą punktów uzyskanych przez ich członków, uporządkowaną wg łącznej sumy punktów

Tabela osoby:
id
nazwa
klan

punkty
 
Powinieneś otrzymać listę zawierającą;

pozycja
klan
suma_punktow

liczba_osob

Zapytanie powinno uporządkować unikalne klany wg sumy_punktów. Jeśli nie ma nazwy klanu powinno zwrócić 'bez klanu'. Powinno zsumować dla każdego klanu suma_punktów oraz liczba_osob

Rozwiązanie:
SELECT RANK() OVER (ORDER BY SUM(punkty) DESC),
  COALESCE(NULLIF(klan,''), '[bez klanu]') AS klan,
  SUM(punkty) AS suma_punktow,
  COUNT(*) AS liczba_osob
FROM osoby 
GROUP BY klan
ORDER BY suma_punktow DESC

Zadanie 8

W tabeli produkty zamieszczono cenę i wagę produktu w gramach. Twoim zadaniem jest utworzenie cennika zawierającego dodatkowo koszt w przeliczeniu na kg, tak aby klienci mieli możliwość łatwo  porównać faktyczną cenę produktów.

Tabela produkty:
id
nazwa 

cena
dostawca
waga
producent
kraj
 
Powinieneś otrzymać listę zawierającą;

nazwa
waga
cena
cena_za_kg

Uporządkuj listę rosnąco wg cena_za_kg, i następnie rosnąco wg nazwy

Rozwiązanie:
SELECT nazwa, waga, cena, ROUND((cena * 1000 / waga )::numeric, 2)::float AS cena_za_kg
FROM produkty
ORDER BY cena_za_kg, nazwa



----------------------------------------

 Zdjęcie: Pexels z Pixabay

Brak komentarzy:

Prześlij komentarz

Popularne