Предположим, у нас есть таблица T с атрибутами a1, a2, ..., an, v , и нам нужно найдите строку, в которой атрибут v имеет максимальное значение по сравнению со всеми другими строками.
Сначала нам понадобится перекрестное произведение T и T '(копия T, в которой v переименовано в v1 ) поэтому мы можем сравнить значения v :
T x ρ{a1, a2, ..., an, v1}T
Во-вторых, выберите строки, где v <<strong> v1 , и мы получим все строки, у которых Значение v меньше значения v хотя бы в одной строке. Это строки, которые нам нужно исключить позже:
σ{v < v1}(T x ρ{a1, a2, ..., an, v1}T)
Затем спроецируйте столбцы с исходными атрибутами T (имена столбцов), чтобы у нас была таблица со схемой T, содержащая все нежелательные строки, которые должны быть исключены из T на следующем шаге:
π{a1, a2, ..., an, v}(σ{v < v1}(T x ρ{a1, a2, ..., an, v1}T))
Наконец, исключите ненужные строки из T, и мы получим строку с максимальным значением v :
T - π{a1, a2, ..., an, v}(σ{v < v1}(T x ρ{a1, a2, ..., an, v1}T))
(Я разработал это на основе ответа SaT и тестирования с помощью онлайн-курса Стэнфорда RA , так как я не очень понимал нотацию SaT, я поместил здесь решение в своей нотации, в котором условия оператора в {}. Надеюсь, это поможет кому-то в будущем)