Для группировки данных в T-SQL применяются операторы GROUP BY и HAVING, для использования которых применяется следующий формальный синтаксис:

1
2
3
4
5
6
SELECT столбцы
FROM таблица
[ WHERE условие_фильтрации_строк]
[ GROUP BY столбцы_для_группировки]
[ HAVING условие_фильтрации_групп]
[ ORDER BY столбцы_для_сортировки]
Агрегатные функции выполняют вычисления над значениями в наборе строк. В T-SQL имеются следующие агрегатные функции:
  • AVG: находит среднее значение

  • SUM: находит сумму значений

  • MIN: находит наименьшее значение

  • MAX: находит наибольшее значение

  • COUNT: находит количество строк в запросе

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

Выражения в функциях AVG и SUM должно представлять числовое значение. Выражение в функциях MIN, MAX и COUNT может представлять числовое или строковое значение или дату.

Все агрегатные функции за исключением COUNT(*) игнорируют значения NULL.

Для изменения уже имеющихся строк в таблице применяется команда UPDATE. Она имеет следующий формальный синтаксис:

1
2
3
4
UPDATE имя_таблицы
SET столбец1 = значение1, столбец2 = значение2, ... столбецN = значениеN
[ FROM выборка AS псевдоним_выборки]
[ WHERE условие_обновления]

Например, увеличим у всех товаров цену на 5000:

1
2
UPDATE Products
SET Price = Price + 5000

Оператор IN

Оператор IN позволяет определить набор значений, которые должны иметь столбцы:

1WHERE выражение [ NOT ] IN (выражение)

Выражение в скобках после IN определяет набор значений. Этот набор может вычисляться динамически на основании, например, еще одного запроса, либо это могут быть константные значения.

Например, выберем товары, у которых производитель либо Samsung, либо Xiaomi, либо Huawei:

1
2
SELECT * FROM Products
WHERE Manufacturer IN ( 'Samsung', 'Xiaomi' , 'Huawei' )

Опрос

Какие языки программирования вы хотите видеть на сайте

Другие опросы...