Читаем MySQL 5.0. Библиотека программиста полностью

позволяет подсчитать, сколько заказов на сумму более 5000 сделал каждый клиент (табл. 3.41). Сначала выбираются строки таблицы Orders (Заказы), для которых выполнено условие amount>5 0 0 0, далее эти строки группируются по значению столбца customer_id (клиент), и после этого вычисляется количество строк в каждой из групп. Таблица 3.41. Результат выполнения запроса

Для отбора групп строк служит параметр HAVING, о котором будет идти речь в следующем подразделе.

Параметр HAVING

Параметр HAVING позволяет задать условие отбора для групп строк. Он аналогичен параметру WHERE, но указывается после параметра GROUP BY и применяется к агрегированным строкам. В условии отбора параметра HAVING можно использовать значения столбцов, выводимых запросом, в том числе значения агрегатных функций.

Например, если требуется вывести общую сумму заказов для каждого клиента, кроме тех клиентов, для кого эта сумма меньше 20 000, выполните запрос

SELECT customer_id, SUM(amount) FROM Orders

GROUP BY customer_id

HAVING SUM(amount)> = 20000;

Условие SUM(amount) > = 20 000 позволяет отобрать только те группы строк, в которых общая сумма заказа равна или превышает 20 000 (табл. 3.42). Таблица 3.42. Результат выполнения запроса

Итак, вы изучили запросы с групповыми функциями, позволяющими получать из таблиц обобщенные данные. Далее мы кратко рассмотрим некоторые полезные функции, оперирующие числовыми величинами.

<p>3.3. Числовые операторы и функции</p>

В данном разделе вы узнаете об основных операторах и функциях, используемых для арифметических, алгебраических и тригонометрических вычислений. Наиболее часто используемыми являются арифметические операторы.

Арифметические операторы

В выражениях вы можете использовать следующие арифметические операторы:

•  а + b.

Оператор сложения. Возвращает сумму операндов a и b.

•  а – b.

Оператор вычитания. Возвращает разность операндов a и b.

При использовании с одним операндом меняет его знак, например – (3 + 2) = -5.

•  а * b.

Оператор умножения. Возвращает произведение операндов a и b.

•  а / b.

Оператор деления. Возвращает частное от деления a на b.

•  а DIV b.

Оператор деления c остатком, или целочисленного деления. Возвращает целую часть частного от деления a на b. Например,:

• 7 DIV 2 = 3,

• (-7) DIV 2 = -3,

• 7 DIV (-2) = -3,

• (-7) DIV (-2) = 3.

• a % b.

Оператор вычисления остатка. Возвращает остаток от целочисленного деления a на b: величину a % b = a – b x (a DIV b). Например,:

• 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).

Экспонента. Возвращает ex (экспоненту числа x).

• FLOOR(x).

Функция округления в меньшую сторону. Возвращает наибольшее из целых чисел, не превосходящих x. Например,:

• FLOOR(12345.6789) = 12345,

• FLOOR(-12345.6789) = -12346.

• LN(x), LOG(x).

Возвращает Inx (натуральный логарифм числа x). Таким образом, LN(EXP(y)) = y.

• LOG10(x).

Возвращает log10x (логарифм числа x по основанию 10). Например, LOG10(100) = 2.

• LOG2(x).

Возвращает log2x (логарифм числа x по основанию 2). Например, LOG2(16) = 4.

• LOG(a,x).

Возвращает logax (логарифм числа x по основанию a). Например, LOG(2,16) = LOG2(16) = 4.

• MOD(a,b).

Синоним выражения a % b, возвращает остаток от целочисленного деления a на b.

• PI().

Возвращает число π = 3,14159….

• POW(x,y), POWER(x,y).

Функция возведения в степень. Возвращает xy.

Например, POW(2, 10) = 1024.

• RAND().

Возвращает случайное число в интервале от 0 до 1.

• RAND(x).

Возвращает псевдослучайное число в интервале от 0 до 1, при этом целое число x используется как начальное значение генератора псевдослучайных чисел. Возвращаемое значение при этом предопределено, например, RAND(2 0) всегда возвращает значение 0,1588826125104 7.

• ROUND(x).

Функция округления до целого. Возвращает целое число, ближайшее к x.

• ROUND(x, n).

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных