Podzapytania: CTE (Common Table Expressions) cz. IV

W poprzedniej części tego artykułu omawiałem podzapytania jako źródło danych. Teraz będziemy kontynuować tą tematykę z tym, że zastosujemy w naszych kwerendach specjalne wyrażenie tabelaryczne CTE – Common Table Expressions specjalnie stworzone do tego typu konstrukcji.

Fot: marissa, Flickr | CC.

Fot: marissa, Flickr | CC.

Ogólna składnia CTE:

Przykład

Ta sama kwerenda bez CTE:

Przy korzystaniu z CTE należy zwrócić uwagę na kilka rzeczy:

  1. Nazwę CTE podaje się po słowie kluczowym: ;WITH (pamiętać o „;„),
  2. Do utworzonego CTE można się odwoływać dowolną ilość razy za pośrednictwem jego nazwy,
  3. Do CTE można się odwołać po jego zdefiniowaniu, jeżeli mamy jakieś rozbudowane zapytanie np. z kilkoma CTE to najpierw musimy je zdefiniować a potem się odwołać (nie można odwołać się do CTE, które zostało zdefiniowane później).

Ćwiczenie

Przejdźmy teraz do przykładu, który opisywałem już w poprzedniej części tego wpisu. Mamy więc następujące tabele:

komputery:

Nazwa Cena
ASUS T200TA 2000
MacBook PRO 6800
Lenovo YOGA 2 2500
Dell XPS 6000

drukarki:

Nazwa Cena
HP DESJKET  170
Canon PIXMA MX395 220
EPSON XP-215 330

monitory:

Nazwa Cena
Samsung SyncMaster TA23A350 1000
EIZO FlexScan EV2730Q 3400
EIZO LCD EV2436WFS3-BK 1800

Chcemy obliczyć średnią cenę sprzętu komputerowego, czyli średnią cenę z komputerów, drukarek oraz monitorów. Do tego celu wykorzystamy podzapytania oraz CTE:

Rezultat:

AVG(Cena)
2422

, , , , ,