Основы SQL. Основы sql основы sql план курса План курса
Скачать 1.14 Mb.
|
) s2group by s2.aircraft_codeorder by s2.aircraft_codewith listdata as(select ad.aircraft_code, ad.model, sum(case when to_char(f.date_departure,'mm')=1 then 1 else 0 end) count1, sum(case when to_char(f.date_departure,'mm')=2 then 1 else 0 end) count2, sum(case when to_char(f.date_departure,'mm')=3 then 1 else 0 end) count3from aircrafts_data ad, flights fwhere ad.aircraft_code=f.aircraft_codeand trunc(f.date_departure) between '01.01.17‘ and ’31.03.17’group by ad.model, ad.aircraft_code)select aircraft_code, model, count1, count2, count3 from listdataunion allselect null, 'Минимум', min(count1), min(count2), min(count3) from listdataunion allselect null, ‘Максимум', max(count1), max(count2), max(count3) from listdataОператор перекрёстного соединения, или декартово произведение CROSS JOIN соединяет две таблицы. Порядок таблиц для оператора неважен. Каждая строка одной таблицы соединяется с каждой строкой второй таблицы, давая тем самым в результате все возможные сочетания строк двух таблиц. Например, для таблиц: SELECT * FROM A, B; Простое перечисление таблиц через запятую практически не используется. Перечисление таблиц, как правило, используется совместно с условием соединения строк из разных таблиц, указываемым в предложении WHERE. Для CROSS JOIN условие не указывается. SELECT * FROM A CROSS JOIN B; Типы соединенияТипы соединения<таблица А> [<тип соединения>] JOIN <таблица B> ON <предикат>В большинстве СУБД при указании слов LEFT, OUTER'>RIGHT, FULL слово OUTER можно опустить. Слово INNER также в большинстве СУБД можно опустить.
INNER JOININNER JOINДля дальнейших пояснений будут использоваться следующие таблицы: Оператор внутреннего соединения INNER JOIN соединяет две таблицы. Порядок таблиц для оператора неважен. Каждая строка одной таблицы сопоставляется с каждой строкой второй таблицы, после чего для полученной «соединённой» строки проверяется условие соединения (вычисляется предикат соединения). Если условие истинно, в таблицу-результат добавляется соответствующая «соединённая» строка. Порядок таблиц для оператора важен. Table A Table B Порядок таблиц для оператора важен. Table B Table A Операторы объединенияОператоры объединенияUNION возвращает все строки из обоих операторов SELECT; повторяющиеся значения удаляются.UNION ALL возвращает все строки из обоих операторов SELECT; повторяющиеся значения показываются.INTERSECT возвращает строки, которые возвращены и первым, и вторым оператором SELECT.MINUS возвращает строки, которые возвращены первым оператором SELECT, исключая те, которые возвращены вторым оператором.Количество и порядок столбцов, возвращаемых SELECT из обеих таблиц, должны совпадать.aircrafts2 select model from aircrafts1 union select model from aircrafts2 order by 1 aircrafts1 select model from aircrafts1 union all select model from aircrafts2 order by 1 select model from aircrafts1 intersect select model from aircrafts2 aircrafts2 aircrafts1 select model from aircrafts1 minus select model from aircrafts2 |