Галерея
7757 8119 8300 8698 8817 9504 9722 9937
Интересные записи
Топовые новости
Новое

Секционированные внешние соединения

Секционированные внешние соединения полезны для извлечения разбросанных данных, которые иначе не так то просто увидеть в результирующем наборе. (Стандарт ANSI описывает секционированные внешние соединения, но первой платформой, на которой они реализованы, является Oracle.) Например, в таблицу product заносятся сведения обо всех производимых нами продуктах, а в таблицу manufacturing — информация о том, когда продукты были произведены. Поскольку мы не производим каждый продукт непрерывно, соединенные данные двух таблиц могут быть фрагментированы по времени.

SELECT manufacturing.time_id AS time,
product_name AS name,
quantity AS qty
FROM product
PARTITION BY (product_name)
RIGHT OUTER JOIN times ON (manufacturing.time_id =product.time_id)
WHERE manufacturing.time_id
BETWEEN TO_DATE(’01/10/05′, ‘DD/MM/YY’) AND TO_DATE(’06/10/05′, ‘DD/MM/YY’)
ORDER BY 2, 1;

Этот пример запроса и результирующий набор показывают, что секционированные внешние соединения полезно использовать для извлечения результирующих наборов, которые иначе было бы сложно получить из-за фрагментации данных.

Источник