1300739495

1300739495



Przykład 5

Wypisz personalia wszystkich czytelników, którzy mieszkają w miejscowościach, w których mieszkają czytelnicy o imieniu Jan1

Tutaj rozwiązanie „na raty” jest już mniej obiecujące - o ile w poprzednim przykładzie wiedzieliśmy, że potrzebujemy jednej nazwy miasta, o tyle tutaj może ich być bardzo wiele2:

SELECT MIASTO FROM CZYTELNIK WHERE IMIĘ = 'Jan'

Wynikiem tego zapytania w naszej przykładowej bazie jest następujący zbiór:

Miasto

Warszawa

Piastów

Wykorzystajmy więc powyższe jako podzapy tanie, jednak nieco inaczej:

SELECT IMIĘ, NAZWISKO FROM CZYTELNIK

WHERE MIASTO IN (SELECT MIASTO FROM CZYTELNIK WHERE IMIĘ = 'Jan')

Podzapy tania możemy użyć również jako tymczasowej tabeli, na której wykonujemy inne (pod?)zapytanie, jak w rozwiązaniu kolejnego przykładu:

Przykład 6

Wypisz personalia i liczbę wypożyczonych książek dla wszystkich czytelników, którzy mają ponadprzeciętne czytelnictwo, jednak liczone jedynie na podstawie tych, którzy cokolwiek wypożyczali (nie uwzględniamy tych, którzy tylko założyli konto) w kolejności malejącej liczby wypożyczonych książek

Ten problem wymaga nieco dłuższego zastanowienia.

Możemy w prosty sposób określić, ile książek dany czytelnik wypożyczył (ci, którzy się nie pojawią w wyniku poniższego zapytania nic nie pożyczyli i nas nie interesują):

SELECT IMIĘ,

NAZWISKO,

COUNT(*) AS CZYTELNICTWO FROM CZYTELNIK,

WYPOŻYCZENIE

WHERE CZYTELNIK.ID = WYPOŻYCZENIE.ID_C GROUP BY ID_C

Chcąc jednak wyświetlić jedynie tych, których czytelnictwo przekracza średnią, musimy tą średnią poznać. Wystarczy więc policzyć liczbę wypożyczeń, oraz liczbę czytelników.

Liczba wypożyczeń to po prostu:

1

   W przeciwieństwie do poprzedniego przykładu tutaj może być wielu Janów mieszkających w różnych miejscowościach!

2

   Uważny czytelnik zauważy, że w podanym zapytaniu można uniknąć powtarzania się miejscowości stosując klauzulę GROUP BY MIASTO, lub słowo DISTINCT. Słusznie. Pomijam to jednak ze względu na czytelność przykładu.



Wyszukiwarka

Podobne podstrony:
Wypisz personalia wszystkich czytelników, którzy mieszkają w tej samej miejscowości, co Jan
SNC00496 (2) ! Przykładowe termogramy wykonane od strony pomieszczeń mieszkalnych — miejsca mostków
Przykład 5 Ile jest a) wszystkich liczb czterocyfrowych, b) liczb czterocyfrowych, w których wszystk
IMGP1487 Przykłady 1. Podaj wszystkich klientów, którzy dotychczasowe zamówienia mieli większe
SNC00495 (2) 12 Przykładowe term ogramy wykonane od strony pomieszczeń mieszkalnych - miejsca mostkó
SNC00495 (2) 12 Przykładowe term ogramy wykonane od strony pomieszczeń mieszkalnych - miejsca mostkó
Renta za mieszkanie Gazeta Wyborcza 05 2011 Renta za mieszkanie Co z odwróconą hipoteką? - niecie
publicznych, wśród sąsiadujących mieszkańców i wszystkich tych, którzy z nami mają jakikolwiek
SZKOLENIA BIBLIOGRAFICZNE są pomocne wszystkim tym, którzy mają problemy z wyszukiwaniem informacji,
Scan10542 (golplost Wszystkim Czytelnikom oraz Przyjaciołom i Sympatykom „Weny" ***   
IMGF73 (2) nialszych widowisk świata, budzą antypatię we wszystkich tych, którzy bezmyślnie i z pozo
page0264 262 dnie zginie. Ester rozkazała nareszcie Mardocheuszowi, ażeby wszystkich żydów, którzy s

więcej podobnych podstron