Предмет: Информатика,
автор: nikolasflavel
Ниже в табличной форме представлен фрагмент базы данных «Отправление поездов дальнего следования»:
Пункт назначения Категория поезда Время в пути Вокзал
Адлер фирменный 29:46 Казанский
Адлер скорый 38:35 Курский
Адлер фирменный 25:30 Казанский
Адлер скорый 39:13 Курский
Алма-Ата скорый 102:22 Павелецкий
Амстердам скорый 36:40 Белорусский
Анапа пассажирский 35:37 Белорусский
Архангельск скорый 20:46 Ярославский
Архангельск пассажирский 46:30 Ярославский
Архангельск скорый 21:25 Белорусский
Астана скорый 58:00 Казанский
Астрахань скорый 27:56 Павелецкий
Сколько записей в данном фрагменте удовлетворяют условию
(Категория поезда = «скорый») ИЛИ (Вокзал = «Казанский»)?
В ответе укажите одно число — искомое количество записей.
Ответы
Автор ответа:
0
Категория поезда = «скорый» - таких записей у нас 8
Вокзал = «Казанский» - таких записей у нас 3
Связка у нас по "ИЛИ", поэтому достаточно чтобы выполнилось только одно из условий. Но если выполнились оба, то у нас такая запись учтена дважды (в каждом из условий).
Найдем количество записей, в которых выполнились оба условия одновременно - их 1.
Окончательно 8+3-1=10 записей.
Ответ: 10
Вокзал = «Казанский» - таких записей у нас 3
Связка у нас по "ИЛИ", поэтому достаточно чтобы выполнилось только одно из условий. Но если выполнились оба, то у нас такая запись учтена дважды (в каждом из условий).
Найдем количество записей, в которых выполнились оба условия одновременно - их 1.
Окончательно 8+3-1=10 записей.
Ответ: 10
Автор ответа:
0
Ах да забыл, 1 вычитается за счет того что стоит логическое ИЛИ
Автор ответа:
0
Вы можете использовать любой алгоритм. Я использовал тот, который реально реализован в системах запросов.
Автор ответа:
0
На самом деле запросы проходят оптимизацию. Вот один из таких алгоритмов для связки "ИЛИ". 1) Делаем выборку по первому из условий. 2) Делаем выборку по второму из условий. 3) Смотрим, какая из выборок дала МЕНЬШЕЕ количество записей и в ней проверяем выполнение второго условия. 4) Вычитаем из суммы найденных по 1) и 2) записей количество, найденное по 4)
Автор ответа:
0
Собственно, именно он у меня в решении и реализован.
Автор ответа:
0
Такой алгоритм относится к категории "ленивых", когда "лень" просматривать в каждой записи все выражение. А Вы предложили "жадный" алгоритм. О ленивых и жадных алгоритмах Вы можете почитать в Интернет.
Похожие вопросы
Предмет: Математика,
автор: arinaaverianovav
Предмет: Музыка,
автор: buchkovkirill
Предмет: Алгебра,
автор: Аноним
Предмет: Химия,
автор: Enot161