6/10/2016

Значения NULL. Устранения дубликатов. Агрегатные функции

Значения NULL 

Значение NULL указывает на то, что ячейка не имеет никаких данных. Даже если в ячейке поставить только пробел, то эта ячейка уже не является значением NULL. Протестировать таблицу на нулевые значения, можно с помощью IS [NOT] NULL. Но не в коем случае так:

SELECT name FROM customer WHERE country = ''";   


Пример 1.
 SELECT name FROM customer WHERE country IS NULL;

 NAME
 --------------------------------------
 Kam's Sporting Goods

Комментарий:
Пример как правильно тестировать таблицу на нулевые значения.

Пример 2.
 SELECT NVL(state,'-'), NVL(country,'?') FROM warehouse;

 NVL(STATE,'-')       NVL(COUNTRY,'?')
 -------------------- ------------------------------
 WA                   USA
 -                    Czechozlovakia
 -                    Brazil
 -                    Nigeria
 -                    ?

Комментарий:
Функцию NVL очень полезно использовать, когда вы хотите, чтобы NULL было каким-то образом присуждено в отображаемый результат. Все арифметические операции на значении NULL дает результат NULL.

Функция NVL - получает два параметра NVL(param1, param2). Если первый параметр param1 не равен NULL то функция возвращает его значение, Если первый параметр NULL, то функция возвращает второй параметр param2.

Устранение дубликатов


Ключевое слово DISTINCT (в качестве альтернативы, вы можете использовать ключевое слово UNIQUE - эквивалентные синонимы) позволяет удалить дубликаты.

 SELECT DISTINCT title FROM emp;

 TITLE
 -------------------------
 President
 Sales Representative Stock Clerk
 VP, Administration VP, Finance
 VP, Operations VP, Sales Warehouse Manager

Агрегатные функции


В SQL существует несколько агрегатных функций таких как:
  • MAX - возвращает максимальное значение данного выражения.
  • MIN - возвращает минимальное значение данного выражения.
  • AVG - возвращает среднее арифметическое данного столбца.
  • SUM - возвращает суму по всех елементах данного столбца.
  • COUNT - возвращает количество елементов столбца, кроме значения NULL.
     SELECT
      MAX(salary), MIN(salary), AVG(salary), SUM(salary), COUNT(salary)
     FROM
      emp;

     MAX(SALARY) MIN(SALARY) AVG(SALARY) SUM(SALARY) COUNT(SALARY)
     ----------- ----------- ----------- ----------- -------------
     2500        750         1255,08     31377       25

    Комментариев нет :

    Отправить комментарий