SUM(поле) возвращает сумму значений в поле;AVG(поле) находит среднее арифметическое для значений в поле;MIN(поле) возвращает минимальное значение в поле;МАХ(поле) возвращает максимальное значение в поле;COUNT(*) выводит количество записей в таблице, а COUNT(поле) — количество записей в поле.SELECT SUM(total),
MIN(total),
MAX(total)
FROM invoice; | sum | min | max |
|---|---|---|
| 2328.60 | 0.99 | 25.86 |
SELECT ROUND(AVG(total), 2)
FROM invoice; | round |
|---|
| 5.65 |
COUNT, в отличие от других, можно использовать и для всей таблицы. -- так считают записи в таблице
SELECT COUNT(*)
FROM invoice; | count |
|---|
| 412 |
billing_postal_code. -- так считают записи в поле
SELECT COUNT(billing_postal_code)
FROM invoice; | count |
|---|
| 384 |
DISTINCT. Оно возвращает уникальные значения. billing_country.SELECT DISTINCT billing_country
FROM invoice
LIMIT 5; | billing_country |
|---|
| Argentina |
| Spain |
| Italy |
| Hungary |
| India |
DISTINCT — это не функция, которая принимает аргументы в виде названий полей. Если перечислить несколько полей после DISTINCT, запрос выведет все уникальные комбинации значений в этих полях.SELECT DISTINCT customer_id,
billing_country
FROM invoice
LIMIT 10; | customer_id | billing_country |
|---|---|
| 2 | Germany |
| 4 | Norway |
| 8 | Belgium |
| 14 | Canada |
| 23 | USA |
| 37 | Germany |
| 38 | Germany |
| 40 | France |
| 42 | France |
| 46 | Ireland |
billing_country некоторые страны повторяются. Дело в том, что с помощью DISTINCT можно вывести именно комбинации уникальных значений: идентификаторов и стран. DISTINCT можно сочетать с агрегирующими функциями. Например, уникальные значения можно посчитать. Здесь пригодится функция COUNT.SELECT COUNT(DISTINCT billing_country)
FROM invoice; | count |
|---|
| 24 |
SELECT DISTINCT billing_country,
COUNT(total)
FROM invoice; DISTINCT с агрегирующими функциями сочетать нельзя. Это не недостаток SQL — просто для таких задач используют другие инструменты. О них расскажем немного позже.Здравствуйте!
Поддержка не сможет помочь с вопросами, связанными с теорией или задачам из курса «Системный аналитик» — в этой ситуации рекомендуем вам обратиться к вашему преподавателю в чате в Slack.
Если же у вас возникнут иные вопросы — обязательно пишите, будем рады помочь :)