позволяет подсчитать, сколько заказов на сумму более 5000 сделал каждый клиент (табл. 3.41). Сначала выбираются строки таблицы Orders (Заказы), для которых выполнено условие amount>5 0 0 0, далее эти строки группируются по значению столбца customer_id (клиент), и после этого вычисляется количество строк в каждой из групп. Таблица 3.41. Результат выполнения запроса
Для отбора групп строк служит параметр HAVING, о котором будет идти речь в следующем подразделе.
Параметр HAVING
Параметр HAVING позволяет задать условие отбора для групп строк. Он аналогичен параметру WHERE, но указывается
Условие SUM(amount) > = 20 000 позволяет отобрать только те группы строк, в которых общая сумма заказа равна или превышает 20 000 (табл. 3.42). Таблица 3.42. Результат выполнения запроса
3.3. Числовые операторы и функции
В данном разделе вы узнаете об основных операторах и функциях, используемых для арифметических, алгебраических и тригонометрических вычислений. Наиболее часто используемыми являются арифметические операторы.
Арифметические операторы
В выражениях вы можете использовать следующие арифметические операторы:
•
Оператор сложения. Возвращает сумму операндов
•
Оператор вычитания. Возвращает разность операндов
При использовании с одним операндом меняет его знак, например – (3 + 2) = -5.
•
Оператор умножения. Возвращает произведение операндов
•
Оператор деления. Возвращает частное от деления
•
Оператор деления c остатком, или целочисленного деления. Возвращает целую часть частного от деления
• 7 DIV 2 = 3,
• (-7) DIV 2 = -3,
• 7 DIV (-2) = -3,
• (-7) DIV (-2) = 3.
• a %
Оператор вычисления остатка. Возвращает остаток от целочисленного деления
• 7 % 2 = 1,
• (– 7) % 2 = -1,
• 7 % (-2) = 1,
• (-7) % (-2) = -1.
В следующем подразделе мы рассмотрим алгебраические функции.
Алгебраические функции
В выражениях вы можете использовать следующие алгебраические функции:
• ABS(x).
Возвращает абсолютную величину (модуль) числа x. Например, ABS(10) = ABS(-10) = 10.
• CEIL(x), CEILING(x).
Функция округления в большую сторону. Возвращает наименьшее из целых чисел, которые больше или равны x. Например,:
• CEIL(12345.6789) = 12346,
• CEIL(-12345.6789) = -12345.
• CRC32(\'Символьное значение\').
Функция вычисляет контрольную сумму для последовательности символов с помощью алгоритма CRC32. Подробнее об алгоритмах CRC вы можете прочитать здесь: http://ru.wikipedia.org/wiki/CRC32. Например, CRC32(\'Beк живи – век учись\') = 4171076480.
• EXP(x).
Экспонента. Возвращает
• FLOOR(x).
Функция округления в меньшую сторону. Возвращает наибольшее из целых чисел, не превосходящих
• FLOOR(12345.6789) = 12345,
• FLOOR(-12345.6789) = -12346.
• LN(x), LOG(x).
Возвращает
• LOG10(x).
Возвращает log10x (логарифм числа
• LOG2(x).
Возвращает log2x (логарифм числа
• LOG(a,x).
Возвращает logax (логарифм числа
• MOD(a,b).
Синоним выражения
• PI().
Возвращает число π = 3,14159….
• POW(x,y), POWER(x,y).
Функция возведения в степень. Возвращает
Например, POW(2, 10) = 1024.
• RAND().
Возвращает случайное число в интервале от 0 до 1.
• RAND(x).
Возвращает псевдослучайное число в интервале от 0 до 1, при этом целое число
• ROUND(x).
Функция округления до целого. Возвращает целое число, ближайшее к x.
• ROUND(x, n).