Введение в модель данных SQL



Семантика агрегатных функций - часть 2


  • Для функций EVERY и SOME T является булевским типом.
    • Первая функция принимает значение true в том и только в том случае, когда вычисление выражения-аргумента дает значение true для каждой строки из заданного набора строк; false - в том и только в том случае, когда значение выражения-аргумента есть false хотя бы для одной строки из заданного набора строк и uknown - во всех остальных случаях.
    • Функция SOME принимает значение false в том и только в том случае, когда значение выражения-аргумента есть false для каждой строки из заданного набора строк; true - в том и только в том случае, когда значение выражения-аргумента есть true хотя бы для одной строки из заданного набора строк; uknown - во всех остальных случаях.
    • Вычисление функции COUNT(*) производится путем подсчета числа строк в заданном мультимножестве. Все строки считаются различными, даже если они состоят из одного столбца со значением null во всех строках.3)

      Если "арифметическая" (AVG, MAX, MIN, SUM, COUNT) агрегатная функция специфицирована с ключевым словом DISTINCT, то множество значений, на котором она вычисляется, строится из значений указанного выражения, вычисляемого для каждой строки заданной группы строк. Затем из этого мультимножества удаляются неопределенные значения, и в нем устраняются значения-дубликаты (т. е. образуется множество). После этого вычисляется указанная функция.

      Если агрегатная функция специфицирована без ключевого слова DISTINCT (или с ключевым словом ALL), то мультимножество значений формируется из значений выражения, вычисляемого для каждой строки заданной группы строк. Затем из этого мультимножества удаляются неопределенные значения, и производится вычисление агрегатной функции.




      Содержание  Назад  Вперед