7.3. Удаление строк из таблиц
-[ RECORD 3 ]--+---------------------------
aircraft_code | CR2
model
| Bombardier CRJ-200
range
| 3240
when_add
| 2017-02-05 00:34:59.510911
operation
| DELETE
Для удаления конкретных строк из данной таблицы можно использовать информа-
цию не только из нее, но также и из других таблиц. Выбирать строки для удаления
можно двумя способами: использовать подзапросы к этим таблицам в предложении
WHERE или указать дополнительные таблицы в предложении USING, а затем в пред-
ложении WHERE записать условия соединения таблиц. Поскольку первый способ яв-
ляется традиционным, то мы покажем второй из них.
Предположим, что руководство авиакомпании решило удалить из парка самолетов
машины компаний Boeing и Airbus, имеющие наименьшую дальность полета.
Решим эту задачу следующим образом. В общем табличном выражении с помощью
условия model ~'^Airbus' OR model ~'^Boeing' в предложении WHERE отберем
модели только компаний Boeing и Airbus. Затем воспользуемся оконной функцией
rank и произведем ранжирование моделей каждой компании по возрастанию даль-
ности полета. Те модели, ранг которых окажется равным 1, будут иметь наименьшую
дальность полета.
В предложении USING сформируем соединение таблицы aircrafts_tmp с времен-
ной таблицей min_ranges, а затем в предложении WHERE зададим условия для отбо-
ра строк.
Достарыңызбен бөлісу: