Руководство по созданию эффективных запросов


 Функции Листинг 11.20



Download 17,08 Mb.
Pdf ko'rish
bet161/210
Sana25.06.2022
Hajmi17,08 Mb.
#704548
TuriРуководство
1   ...   157   158   159   160   161   162   163   164   ...   210
Bog'liq
OptimizZaprvPostgreSQL

210

Функции
Листинг 11.20 

Дополнительные определения типов записей
CREATE TYPE flight_record AS (
flight_id int,
flight_no text,
departure_airport_code text,
departure_airport_name text,
arrival_airport_code text,
arrival_airport_name text,
scheduled_departure timestamptz,
scheduled_arrival timestamptz
);
CREATE TYPE boarding_pass_record AS (
boarding_pass_id integer,
booking_leg_id bigint,
flight_no text,
departure_airport text,
arrival_airport text,
last_name text,
first_name text,
seat text,
boarding_time timestamptz
);
CREATE TYPE booking_leg_record AS (
booking_leg_id int,
leg_num int,
booking_id int,
flight flight_record,
boarding_passes boarding_pass_record[]
);
Мы выбираем информацию о рейсе, на который ссылается выбранный 
сегмент бронирования.
Встроенная функция 
row
создает строку из набора элементов, и эта строка 
приводится к типу 
flight_record
, ожидаемому в 
booking_leg_record
.
Последний элемент 
booking_leg_record
– это массив посадочных талонов. 
Его размер определяется количеством пассажиров в бронировании. Рассмот-
рим подробнее этот подзапрос:
( SELECT array_agg (row(
pass_id,
bp.booking_leg_id,
flight_no,
departure_airport ,
arrival_airport,
last_name,
first_name,
seat,
boarding_time
)::boarding_pass_record)


Использование составных типов с вложенной структурой 

211
FROM flight f1
JOIN boarding_pass bp ON f1.flight_id = bl.flight_id
AND bp.booking_leg_id = bl.booking_leg_id
JOIN passenger p ON p.passenger_id = bp.passenger_id
)

Download 17,08 Mb.

Do'stlaringiz bilan baham:
1   ...   157   158   159   160   161   162   163   164   ...   210




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©hozir.org 2024
ma'muriyatiga murojaat qiling

kiriting | ro'yxatdan o'tish
    Bosh sahifa
юртда тантана
Боғда битган
Бугун юртда
Эшитганлар жилманглар
Эшитмадим деманглар
битган бодомлар
Yangiariq tumani
qitish marakazi
Raqamli texnologiyalar
ilishida muhokamadan
tasdiqqa tavsiya
tavsiya etilgan
iqtisodiyot kafedrasi
steiermarkischen landesregierung
asarlaringizni yuboring
o'zingizning asarlaringizni
Iltimos faqat
faqat o'zingizning
steierm rkischen
landesregierung fachabteilung
rkischen landesregierung
hamshira loyihasi
loyihasi mavsum
faolyatining oqibatlari
asosiy adabiyotlar
fakulteti ahborot
ahborot havfsizligi
havfsizligi kafedrasi
fanidan bo’yicha
fakulteti iqtisodiyot
boshqaruv fakulteti
chiqarishda boshqaruv
ishlab chiqarishda
iqtisodiyot fakultet
multiservis tarmoqlari
fanidan asosiy
Uzbek fanidan
mavzulari potok
asosidagi multiservis
'aliyyil a'ziym
billahil 'aliyyil
illaa billahil
quvvata illaa
falah' deganida
Kompyuter savodxonligi
bo’yicha mustaqil
'alal falah'
Hayya 'alal
'alas soloh
Hayya 'alas
mavsum boyicha


yuklab olish