24.39M

Модуль_11_sql_singleSales

1.

ra
ra
r
S
e
M
ra
1
e
Обучение для бизнеса
in
r
S
M
in
r
e
in
M S -Tr a i n e r G r o u p
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
e
S
r
in
e
r
S
r
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
Модуль 11. SQL single sales
M
in
M
in
r
r
G
ro
u
p
M
M
S
S
ro
u
p
M
S
-T
ra
Анализ данных и построение
отчетов c Microsoft PowerBI и SQL
G
-T
ra
-T
ra
in
r
r
S
e
M
e
S
M
in
r
e
in
u
G
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
Тренер: Егор Старостин
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

2.

S
M
2
Обучение для бизнеса
e
G
ro
u
p
G
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
e
in
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
Работа с единичной таблицей: select
in
r
ro
S
r
M
Работа с единичной таблицей: having
e
p
G
e
M
in
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
Введение в БД и их место при создании хранилища данных
ra
u
r
-T
ra
Работа с единичной таблицей: group by
in
ro
e
p
S
Работа с единичной таблицей: where
-T
ra
G
u
in
ro
-T
ra
G
M
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Что будет в модуле
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
Типы данных
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Модуль 11. SQL single sales
r
r
G
r
-T
r
G
-T
r
G

3.

r
S
e
M
ra
3
e
Обучение для бизнеса
in
r
S
M
in
r
e
in
M S -Tr a i n e r G r o u p
ra
ra
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Введение в БД
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

4.

S
M
ra
4
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
in
ro
e
p
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
e
in
r
S
r
G
u
ro
u
p
e
p
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
r
S
G
u
e
p
in
ro
-T
ra
-T
ra
-T
ra
S
S
-T
ra
S
И возникает логичный вопрос:
где их хранить и какие
требования предъявлять к
хранению этой информации
e
M
in
M
in
Все программные компоненты
собирают данные – это
логины, мета информация и
т.д.
-T
ra
G
u
in
ro
-T
ra
G
M
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Что такое Базы данных и зачем они?
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Введение в БД
r
r
G
r
-T
r
G
-T
r
G

5.

r
u
ro
G
G
p
ro
G
-T
ra
u
ro
G
G
p
ro
G
-T
ra
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
u
in
p
u
ro
G
-T
ra
S
G
r
e
e
r
r
e
in
p
u
ro
Одновременность работы множества людей:
in
M
p
S
M
ro
u
M
p
S
• Пример: транзакция по банковской карте
S
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
u
in
p
u
ro
G
-T
ra
S
r
e
e
r
r
e
in
p
u
ro
G
Корректность ввода данных:
in
M
p
S
M
ro
u
M
p
S
Основные требования к БД
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Введение в БД
r
e
in
-T
ra
S
M
p
u
r
u
ro
e
r
G
-T
ra
in
Обучение для бизнеса
ra
S
M
5
p
e
in
p
u
ro
r
ra
in
e
G
-T
ra
S
M
e
r
G
ro
u
in
p
e
r
G
G
ro
ro
u
Обработка собранной информацией (ETL)
M S -Tr a i n e r G r o u p
p
u
ro
G
-T
ra
S
M
p
M
M
S
S
Масштабирование и отказоустойчивость
in
S
e
in
p
u
ro
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
Безопасность, особенно очень чувствительных данных
ra
M
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
• Корректная обработка данных как при их чтении, так и при их записи
• Пример: ERP система, обработка одной записи сразу двумя операторами

6.

S
M
Обучение для бизнеса
e
G
ro
u
p
e
p
r
r
G
G
ro
ro
u
u
p
p
M
S
-T
ra
-T
ra
M
S
-T
ra
in
r
r
S
e
M
e
S
M
in
r
e
in
Колоночные базы данных
in
u
in
ro
e
p
S
G
u
ro
u
p
e
p
e
p
r
r
G
G
ro
ro
Графовые базы данных
in
ro
-T
ra
G
u
in
ro
-T
ra
G
u
u
p
p
M
M
S
S
-T
ra
-T
ra
M
S
-T
ra
Документо-ориентированные базы данных
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
r
r
G
G
ro
ro
Key-vault база данных
in
ro
-T
ra
G
u
in
ro
-T
ra
G
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
e
r
S
M
in
r
e
in
-T
ra
in
r
S
e
M
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
Реляционные базы данных
ra
6
-T
ra
G
u
in
ro
-T
ra
G
M
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Типы базы данных
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Введение в БД
r
r
G
r
-T
r
G
-T
r
G

7.

S
M
ra
7
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Пример реляционной БД
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Введение в БД
r
r
G
r
-T
r
G
-T
r
G

8.

S
M
ra
8
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Пример НЕ реляционной БД
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Введение в БД
r
r
G
r
-T
r
G
-T
r
G

9.

S
M
ra
9
e
Обучение для бизнеса
in
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
p
M
u
S
p
M
u
S
-T
ra
-T
ra
-T
ra
Пример использования БД в хранилищах
M
e
in
r
r
S
e
M
in
r
S
e
M
in
Введение в БД
r
r
G
r
-T
r
G
-T
r
G

10.

r
e
in
-T
ra
S
M
p
u
ro
G
G
p
u
ro
e
-T
ra
S
r
p
e
r
e
in
S
M
u
p
e
-T
ra
ro
u
in
p
u
ro
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
p
SQL Майкрософт, с которым работает MSSQL – это T–SQL
p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
-T
ra
S
M
M
p
u
ro
G
G
r
e
in
p
u
ro
G
r
e
in
in
M
ro
• Разработан IBM в 1970-х годах
• Принят в качестве стандарта органами по стандартизации ANSI и ISO
• Широко используется в промышленности
-T
ra
r
S
r
e
in
S
M
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
SQL – структурированный язык запроса (Structured Query Language)
G
-T
ra
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
r
S
M
-T
ra
S
M
ro
u
M
p
S
Что такое PSql
G
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Введение в БД
G
-T
ra
in
M
e
r
S
G
r
e
in
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
SQL – описательный язык, не пошаговый (нет классических циклов)
u
ro
G
r
e
in
Обучение для бизнеса
ra
10
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
p
p
SQL – работает со множеством

11.

ra
ra
S
M
ra
11
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
in
e
r
M
S
-T
ra
e
in
r
S
r
S
e
M
in
M
Полное название: [server_name].[database_name]
[schema_name]object_name
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
G
u
ro
u
p
e
p
r
r
G
G
ro
ro
Схема – это пространство имен для объектов базы данных
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
u
u
p
p
M
M
S
S
-T
ra
-T
ra
r
M
S
-T
ra
e
in
r
r
S
e
M
in
S
e
M
in
u
G
u
ro
u
p
e
p
in
ro
-T
ra
G
e
p
in
ro
-T
ra
G
r
G
ro
u
S
p
M
-T
ra
-T
ra
e
M
in
S
r
u
r
G
ro
S
S
p
M
u
M
-T
ra
e
in
r
r
S
e
M
in
G
u
ro
u
p
e
p
in
ro
-T
ra
G
e
p
in
ro
-T
ra
G
Схема и
Наименование
Объекта
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

12.

r
e
in
-T
ra
p
u
ro
r
e
in
-T
ra
p
u
ro
G
r
e
in
-T
ra
S
M
p
u
ro
G
r
p
e
r
e
in
u
ro
G
r
e
in
Обучение для бизнеса
ra
12
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
-T
ra
S
M
in
p
u
ro
G
r
e
S
-T
ra
S
M
-T
ra
S
M
p
u
ro
G
r
e
in
p
u
ro
G
r
e
-T
ra
in
<order by list>
<count list>
M
ra
in
M S -Tr a i n e r G r o u p
M
p
ro
G
r
e
in
p
u
ro
G
r
in
M
e
-T
ra
S
G
r
e
in
-T
ra
S
<search condition>
S
G
-T
ra
S
M
u
u
ro
G
r
e
in
p
u
ro
<search condition>
<group by list>
M
HAVING
Limit
S
r
e
in
p
u
ro
G
r
e
in
-T
ra
S
p
M
-T
ra
S
M
Role
Определяет какие колонки
необходимо вернуть
Определяем таблицу,
таблицы для запросов
Фильтрация строк
Диапазон строк для
группировки
Фильтрация строк после
группировки
Сортировка выводимых
данных
Кол-во строк для вывода
<table source>
ORDER BY
M
p
u
ro
G
G
r
e
in
p
u
ro
G
r
S
M
FROM
WHERE
GROUP BY
r
S
M
-T
ra
S
M
p
ro
u
M
Expression
<select list>
-T
ra
in
e
Element
SELECT
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
Работа с единичной таблицей

13.

r
u
ro
G
G
p
u
ro
G
e
r
S
u
p
u
p
p
u
ro
G
p
u
ro
G
r
e
Обучение для бизнеса
in
13
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
u
S
M
S
M
p
u
ro
G
• SELECT *, 1 FROM singlesales;
r
ro
r
e
-T
ra
in
M
-T
ra
-T
ra
S
Добавить новый столбец с константой:
e
G
-T
ra
S
G
r
e
in
in
M
e
r
S
G
Применить математику к выбранной колонки
M
ro
r
e
in
-T
ra
S
M
e
in
p
u
ro
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
• SELECT Name as tmpName, ListPrice as tmpListPrice
• FROM singlesales;
in
G
-T
ra
S
M
M
M
S
S
Переименовать выбранные колонки
ra
S
ro
e
in
p
u
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
ro
u
in
p
e
r
r
G
G
Оставить только нужные колонки:
• SELECT Name, ListPrice*0.9
• FROM singlesales;
M
p
S
M
ro
u
M
p
S
-T
ra
-T
ra
in
M
in
M
e
r
S
G
-T
ra
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
in
-T
ra
• SELECT * FROM singlesales;
M S -Tr a i n e r G r o u p
M
p
S
M
p
ro
u
M
Ознакомиться с данными таблицы:
• SELECT Name, ListPrice
• FROM singlesales;
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
Работа с единичной таблицей

14.

S
M
ra
14
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Select
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Demo по
работе с
единично
й
таблицей:
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

15.

r
u
ro
G
G
p
u
ro
e
in
-T
ra
u
M
p
S
-T
ra
S
M
p
e
e
r
r
G
G
ro
ro
u
M
r
S
in
M
e
r
S
M
-T
ra
S
• SELECT * FROM singlesales limit 10;
G
-T
ra
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
M
p
S
M
p
ro
u
M
Ознакомиться с данными таблицы с ограничением строк:
in
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
Работа с единичной таблицей
p
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
S
M
M
M
S
S
-T
ra
-T
ra
in
• SELECT * FROM singlesales limit 10 offset 2;
in
M
e
r
S
G
-T
ra
ro
u
in
p
Ознакомиться с данными таблицы с ограничением строк, начиная со второй:
p
e
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
in
S
p
p
M
А можно посмотреть не от кол-ва, а от % соотношения данных н-р, 1 % данных?
u
ro
G
r
e
in
Обучение для бизнеса
ra
15
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
in
ra
r
r
G
G
ro
ro
u
u
А можно ли посмотреть данные рандомно?
M S -Tr a i n e r G r o u p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
• SELECT * FROM singlesales limit ALL offset 2;
• SELECT * FROM singlesales offset 2;
r
r
G
G
ro
ro
u
u
p
p
Ознакомиться с данными таблицы без ограничением строк, начиная со второй:

16.

S
M
ra
16
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Limit
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

17.

r
r
u
ro
G
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
p
u
r
p
e
p
p
e
r
G
G
ro
ro
1. Подключиться к БД demo: 95.163.208.207:8500
S
-T
ra
S
M
p
u
p
e
in
p
u
ro
G
-T
ra
S
M
M
S
G
G
r
e
in
p
u
ro
G
r
e
in
-T
ra
S
Что необходимо сделать?
M
p
u
ro
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
M
Небольшая практика на Select
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
u
ro
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
2. Написать запрос на просмотр какие данные есть в таблице
singleSales для схемы distributor
S
M
M
M
S
S
3. Добавить к прошлому запросу ограничение на вывод строк
p
e
G
-T
ra
ro
u
in
p
u
ro
G
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
4. Написать запрос, который оставит только следующие
наименования таблиц: checkId, dateId, salesRub, sales, branchName,
itemName
-T
ra
in
M
e
r
S
r
e
in
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
5. Добавить в запрос на переименование кол-к, например checkId –
номерЧека, dateId – ДатаПродажи
u
u
p
p
6. Добавить новый столбце с наименование:
ЦенаПродажиНаЕдиницуТовара вычисляемую как salesRub/sales
u
ro
G
r
e
in
Обучение для бизнеса
ra
17
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
7. Добавить команду по выводу строк, начиная в 10

18.

r
G
e
in
-T
ra
S
M
p
u
ro
G
G
p
u
ro
G
-T
ra
e
r
S
u
ro
G
G
p
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
in
u
ro
G
r
e
e
r
r
e
p
• SELECT branchName FROM singlesales limit 10;
in
S
p
S
M
ro
u
M
p
S
Ознакомиться с данными таблицы с ограничением строк:
M
-T
ra
-T
ra
in
M
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
-T
ra
in
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Основы работы
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
S
M
u
u
p
p
M
M
S
S
Как посмотреть уникальные значения в заданном столбце
r
u
ro
G
-T
ra
in
-T
ra
S
M
u
ro
G
r
e
in
Обучение для бизнеса
ra
18
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
in
r
r
G
G
ro
ro
u
u
p
p
• branchName и Region
• branchName и Category
ra
e
r
S
M
in
M
M
S
S
-T
ra
-T
ra
in
Какой будет результат, если задать сразу два столбца, например:
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
r
e
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
G
G
ro
ro
• SELECT distinct branchName FROM singlesales limit 10;

19.

S
M
ra
19
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Distinct
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

20.

r
G
e
in
-T
ra
S
r
u
ro
G
-T
ra
u
p
u
ro
G
-T
ra
-T
ra
in
M
e
r
S
r
e
-T
ra
-T
ra
in
M
e
r
S
Что делать если мы теперь хотим отсортировать наши данные?
in
S
e
in
p
u
ro
G
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
• SELECT branchName FROM singlesales limit 10
M
p
S
M
M
p
S
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
r
e
M
p
u
ro
G
G
r
e
in
p
u
ro
G
Ознакомиться с данными таблицы с ограничением строк:
in
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Основы работы
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
S
M
r
p
e
-T
ra
ro
u
in
p
u
ro
-T
ra
ro
u
in
p
e
r
G
G
ro
ro
u
u
p
p
M
M
S
S
• order by (asc/desc) от А до Я и наоборот от Я до А
• order by random() – позволяет рандомно отсортировать данные
• nulls FIRST
G
-T
ra
in
M
e
r
S
G
r
e
in
S
-T
ra
M
S
u
u
p
p
M
S
• branchName и Region
• branchName и Category?
M
-T
ra
in
M
e
r
S
G
Какой будет результат, если задать сразу два столбца, например:
u
ro
G
r
e
in
Обучение для бизнеса
ra
20
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
А можно сначала в order by производить вычисления с колонкой?

21.

S
M
ra
21
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Order
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

22.

S
M
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
SELECT
column_name, data_type, character_maximum_length, column_default,
is_nullable,table_name
M
M
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Предоставляет IDE запрос к системным таблицам:
ra
22
in
ro
e
p
S
FROM INFORMATION_SCHEMA.COLUMNS
WHERE table_name = 'sales'
-T
ra
G
u
in
ro
-T
ra
G
M
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Два способа получить тип данных:
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Работа с единичной таблицей
r
r
G
r
-T
r
G
-T
r
G

23.

S
M
ra
23
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
System table
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

24.

r
e
r
S
-T
ra
in
M
M
p
u
ro
G
r
p
e
r
e
in
S
M
p
u
M
Проанализировать на уникальность следующие поля: fullname, branchName,
region, brand
2.
Проанализировать на уникальность комбинацию полей: fullname и
branchName.
3.
При просмотре данных отсортировать их по полям: fullname, branchName в
обратном порядке, region, brand в обратном порядке (поля брать отдельно,
т.е. в сумме у вас должно быть 4 разных запроса)
r
e
in
-T
ra
S
M
p
u
ro
G
Посмотреть на 100 первых записей в рандомном порядке
in
Обратиться к системной таблице:
INFORMATION_SCHEMA.COLUMNS where table_name = 'sales’
и понять какой типа у полей: fullname, branchName, region, brand
u
ro
G
-T
ra
e
r
S
-T
ra
S
M
p
u
u
ro
ro
G
G
p
u
ro
G
r
e
Обучение для бизнеса
in
24
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
in
M
p
M
M
in
ra
p
e
in
p
u
ro
G
r
e
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
5.
M S -Tr a i n e r G r o u p
u
G
-T
ra
S
M
u
ro
G
При просмотре данных отсортировать их по полям: fullname и branchName в
обратном порядке.
S
r
4.
6.
p
e
in
p
u
ro
G
r
e
in
p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
1.
ro
p
u
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
-T
ra
S
M
S
-T
ra
S
M
p
u
ro
G
r
e
in
p
u
ro
G
r
e
in
-T
ra
S
Что необходимо сделать?
M
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
M
Небольшая практика на Select

25.

ra
ra
S
M
ra
25
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
G
ro
r
G
ro
15 минут.
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
u
p
M
M
S
S
-T
ra
-T
ra
e
u
p
M
S
-T
ra
e
in
r
S
r
r
S
e
M
in
M
in
u
G
u
ro
u
p
e
p
in
ro
-T
ra
G
e
p
in
ro
-T
ra
G
r
G
ro
r
G
ro
COFFEE
BREAK
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

26.

r
p
u
ro
G
r
e
p
u
r
e
-T
ra
in
M
S
M
p
u
u
ro
ro
G
G
p
u
ro
G
r
e
Обучение для бизнеса
in
26
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
G
e
p
u
ro
in
ro
G
-T
ra
S
r
e
in
-T
ra
S
p
M
M
in
ra
in
-T
ra
r
-T
ra
ro
G
r
e
in
p
u
ro
G
-T
ra
S
M
e
S
M
p
u
u
ro
G
r
e
in
p
u
ro
G
r
e
-T
ra
in
<order by list>
<count list>
S
in
-T
ra
-T
ra
S
M
-T
ra
S
M
p
<search condition>
M S -Tr a i n e r G r o u p
S
r
e
in
p
u
ro
G
r
in
M
e
-T
ra
S
G
r
e
in
-T
ra
S
Limit
M
p
u
ro
G
G
r
e
in
p
u
ro
<search condition>
<group by list>
M
HAVING
G
-T
ra
S
M
ro
u
<table source>
ORDER BY
S
r
e
in
p
u
ro
G
r
e
in
-T
ra
S
p
Role
Определяем какие колонки
необходимо вернуть
Определяем таблицу,
таблицы для запросов
Фильтрация строк
Диапазон строк для
группировки
Фильтрация строк после
группировки
Сортировка выводимых
данных
Кол-во строк для вывода
M
-T
ra
S
M
G
r
S
M
FROM
WHERE
GROUP BY
M
p
u
ro
G
G
r
e
in
p
u
ro
Expression
<select list>
-T
ra
in
e
Element
SELECT
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Синтаксис
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей

27.

r
e
in
-T
ra
S
r
u
ro
G
-T
ra
u
ro
G
G
p
u
ro
-T
ra
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
M
p
S
M
ro
u
M
p
S
• select * from singleSales s where branchName = ‘Екатеринбург’
• Как проверить, что остались записи именно с Екатеринбургом?
S
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
r
M
p
u
ro
G
G
r
e
in
p
u
ro
G
Отсортируем данные по филиалу: «Екатеринбург»
e
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Сортировка и фильтрация
in
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
G
-T
ra
in
M
e
r
S
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
Отсортируем данные сразу по двум филиалам: «Екатеринбург» или «Москва»
S
M
u
u
p
p
M
M
S
S
• select * from singleSales s where branchName = ‘Екатеринбург’ or branchName =‘Москва’
• Проверять будем?
r
p
e
u
ro
G
-T
ra
-T
ra
in
M
e
r
S
r
e
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
• Используем in
• select * from singleSales s where branchName in (‘Екатеринбург’, ‘Москва’)
in
in
p
u
ro
G
G
-T
ra
ro
u
in
p
e
r
G
G
ro
ro
Как быть, если филиалов отсортировать надо еще больше?
Каждый раз писать or?
p
p
А как выбрать все филиалы, кроме «Екатеринбург» или «Москва»?
G
r
p
u
ro
e
r
G
-T
ra
in
Обучение для бизнеса
ra
S
M
27
e
in
p
u
ro
r
in
e
G
-T
ra
S
ra
ra
in
M S -Tr a i n e r G r o u p
M
e
r
G
ro
u
in
p
e
r
G
ro
ro
u
u
• Используем not in
• select * from singleSales s where branchName not in (‘Екатеринбург’, ‘Москва’)

28.

S
M
ra
28
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
where
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

29.

r
e
in
-T
ra
S
M
p
u
ro
G
G
p
u
ro
G
-T
ra
G
p
S
u
M
r
p
e
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
in
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
G
G
ro
ro
u
M
p
S
• select * from singleSales s where starts_with(branchName,‘Екат’)
• Альтернатива: select * from singleSales where like (‘Екат%’)
• % - содержит любое кол-во символов
• _ - содержит один любой символ
• Как проверить, что остались записи именно с Екатеринбургом?
S
-T
ra
in
M
e
r
S
r
e
in
-T
ra
-T
ra
in
M
e
r
S
Отсортируем данные по филиалам, начинающимся со слов: «Екат»
M
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
S
M
in
-T
ra
S
ro
u
M
p
S
Сортировка и фильтрация
M
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
u
ro
G
-T
ra
e
r
S
-T
ra
in
M
S
M
M
r
u
ro
e
r
G
-T
ra
Обучение для бизнеса
in
S
M
29
p
e
in
p
u
ro
r
ra
in
e
G
-T
ra
S
in
ra
M
e
r
G
ro
u
in
p
e
r
G
G
ro
ro
u
u
p
p
• select * from singleSales s where like (‘%окв%’)
• А отрицание как построить, не содержит данную часть слова?
ra
M
Отсортируем данные по филиалам, содержащим слово: «окв»
M S -Tr a i n e r G r o u p
p
e
in
p
ro
G
r
e
in
-T
ra
S
S
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
• select * from singleSales s where like (‘%ква’)
• Проверять будем? Отдельной функции нет
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
Отсортируем данные по филиалам, оканчивающимся на слово: «ква»

30.

S
M
ra
30
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
where
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

31.

r
e
in
-T
ra
S
r
u
ro
G
-T
ra
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
r
M
p
u
ro
G
G
r
e
in
p
u
ro
G
Отсортируем данные по годам c 2012 по 2013 не включая
e
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Сортировка и фильтрация
in
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
r
u
ro
G
-T
ra
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
G
r
e
S
u
ro
G
G
r
e
in
p
u
ro
Отсортируем данные по годам c 2012 по 2013 не включая,
альтернативный способ:
in
M
p
S
M
ro
u
M
p
S
• select * from singleSales s where “branchId” >= ‘2012-01-01’ and “branchId” < ‘2013-01-01’
• Как проверить, что остались записи именно с выбранными данными?
S
M
ro
ro
u
u
p
p
M
M
S
S
• select * from singleSales s where “branchId” between ‘2012-01-01’ and ‘2013-01-01’
• Проверять будем?
p
e
-T
ra
ro
u
in
p
u
ro
-T
ra
ro
u
in
p
e
r
r
G
G
А как исключить из диапазона эти даты?
G
-T
ra
in
M
e
r
S
G
r
e
in
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
• select * from singleSales s where “branchId” not between ‘2012-01-01’ and ‘2013-01-01’
Как быть если нужно отсортировать несколько дат одновременно,
но не диапазоном, например: 2012-01-01, 2012-01-10, 2012-01-20?
u
ro
G
r
e
in
Обучение для бизнеса
ra
31
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
p
p
• select * from singleSales s where “branchId” in (‘2012-01-01’, ‘2013-01-01’)
• или используем not in

32.

S
M
ra
32
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
where
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

33.

r
e
in
-T
ra
S
M
p
u
ro
G
G
p
u
ro
G
-T
ra
in
-T
ra
S
p
u
ro
r
p
e
S
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
in
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
G
G
• select * from singlesales s where fullname = “” не отработает
• select * from singleSales where fullname is null
-T
ra
M
in
S
ro
u
M
p
S
-T
ra
-T
ra
in
Отсортируем данные по столбцу fullname в котором есть пустые значения?
M
e
r
S
M
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Сортировка и фильтрация
e
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
M
G
G
ro
ro
u
u
p
p
M
M
А как оставить все заполненные данные в fullname?
r
u
ro
G
-T
ra
e
r
S
S
M
p
u
u
ro
ro
G
G
p
u
ro
G
r
e
Обучение для бизнеса
in
33
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
in
ra
-T
ra
in
M
p
M
M
S
S
Null – это особый тип, что типа пусто, нет значения, не заполненно
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
• select * from singleSales s where fullname is not null

34.

r
S
M
p
u
ro
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
M
p
e
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
M
p
S
-T
ra
S
M
M
p
S
-T
ra
in
Что необходимо сделать?
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
Небольшая практика на Where. Часть 1.
u
p
e
-T
ra
u
ro
r
-T
ra
in
M
e
S
G
in
M
e
r
S
r
e
in
-T
ra
G
-T
ra
-T
ra
ro
u
in
p
e
in
p
u
ro
Составить запрос к таблице singleSales для ознакомления со всеми полями в таблице и
только для филиала: Москва с продажами (salesRub) более 1000 руб.
G
2.
r
r
G
G
ro
ro
u
1. Составить запрос к таблице singleSales для ознакомления со всеми полями в таблице и
только для филиала: Москва
S
M
u
u
p
p
M
M
S
S
3. Составить запрос к таблице singleSales для ознакомления со всеми полями в таблице и
только для филиала: Москва с продажами (salesRub) в диапазоне от 100 до 200 руб.
p
e
ro
u
in
p
u
ro
G
-T
ra
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
4. Составить запрос к таблице singleSales со всеми полями в таблице и только для
филиала: Самара, по которым значения Id чеков (checkId) не заполнено (null)
-T
ra
in
M
e
r
S
r
e
in
S
S
S
-T
ra
-T
ra
in
M
e
r
S
G
5. Составить запрос к таблице singleSales со всеми полями в таблице для двух филиалов:
Самара и Москва, по которым значения Id чеков (checkId) не заполнено (null)
M
u
ro
G
r
e
in
Обучение для бизнеса
ra
34
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
p
p
M
M
6. Составить запрос к таблице singleSales со всеми полями в таблице для пяти менеджеров
(fullName):
Аброскина Анастасия, Васильев Дмитрий, Ершов Михаил, Кошель Марина, Сенькин
Александр

35.

r
S
M
p
u
ro
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
G
G
p
u
ro
G
-T
ra
e
r
S
M
p
S
-T
ra
in
M
-T
ra
S
M
u
p
e
-T
ra
r
S
u
in
p
u
ro
G
r
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
7. Составить запрос к таблице singleSales со всеми полями в таблице для всех филиалов,
кроме: Самара (оператором In пользоваться нельзя в этой задачи), по которым значения
Id чеков (checkId) не заполнено (null)
ro
p
M
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
S
-T
ra
in
Что необходимо сделать?
G
r
G
r
e
in
-T
ra
S
M
Небольшая практика на Where. Часть 2.
e
-T
ra
in
M
e
in
S
M
p
p
M
M
S
S
-T
ra
-T
ra
in
M
e
8. Составить запрос к таблице singleSales со всеми полями в таблице для всех менеджеров
кроме этих пяти менеджеров (fullName): Аброскина Анастасия, Васильев Дмитрий, Ершов
Михаил, Кошель Марина, Сенькин Александр
p
e
ro
u
in
p
u
ro
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
9. Составить запрос к таблице singleSales со всеми полями в таблице для которых в
наименование товара (itemName) начинается со слово: Кнопка
G
-T
ra
-T
ra
in
M
e
r
S
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
10.Составить запрос к таблице singleSales со всеми полями в таблице для которых в
наименование товара (itemName) встречаеться слово: Кнопка
S
M
M
M
S
S
11.Составить запрос к таблице singleSales со всеми полями в таблице для которых в первая
буква в наименовании менеджера (fullName) начинается либо на А либо на В.
u
ro
G
r
e
in
Обучение для бизнеса
ra
35
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
p
p
12.Вывести в одном столбце информацию о компании и регионе, в котором она
расположена, предварительно убрав все null в столбце компания и регион. Регион взять
в скобки, между наименованием компании и регионом должен быть пробел

36.

S
M
36
e
Обучение для бизнеса
in
G
ro
u
p
r
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
• select count(checkId) from singleSales
e
p
G
Попробуйте запустить и сравнить результаты, что возвращают запросы.
В чем разница?
M
in
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
Как определить кол-во строк в таблице?
ra
u
r
-T
ra
Как определить кол-во строк в столбце?
in
ro
e
p
S
• select count(*) from singleSales
-T
ra
G
u
in
ro
-T
ra
G
M
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
Расчет количества строк
r
r
in
e
r
S
e
M
in
M S -Tr a i n e r G r o u p
ra
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
Работа с единичной таблицей
r
r
G
r
-T
r
G
-T
r
G

37.

r
e
in
-T
ra
S
r
u
ro
G
-T
ra
u
ro
G
G
p
u
ro
G
-T
ra
e
r
S
-T
ra
-T
ra
in
M
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
-T
ra
in
S
p
S
M
ro
u
M
p
S
• select sum(sales) from singleSales
• select sum(salesRub) from singleSales
• Работает только для числовых столбцов
M
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
r
M
p
u
ro
G
G
r
e
in
p
u
ro
G
Как определить сумму в строке в таблицы?
e
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
Функции агрегирования:
in
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
S
M
r
u
ro
G
-T
ra
e
r
S
-T
ra
in
M
S
M
u
u
p
p
M
r
u
ro
e
r
G
-T
ra
Обучение для бизнеса
in
S
M
37
p
e
in
p
u
ro
r
ra
in
e
G
-T
ra
S
in
ra
M
e
r
G
ro
u
in
p
e
r
G
G
ro
ro
Min/Max – работает только для числовых таблиц?
ra
M
S
S
Avg – определяет среднее значение в столбце таблицы
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
r
e
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
Max – определяет максимальное значение в столбце таблицы
G
G
ro
ro
u
u
p
p
M
M
S
S
Min – определяет минимальное значение в столбце таблицы

38.

r
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
r
u
ro
G
-T
ra
u
r
p
e
u
ro
ro
u
in
p
e
in
p
u
ro
S
ro
G
G
r
BOOL_AND:
M
p
S
M
ro
u
M
p
S
-T
ra
-T
ra
in
in
M
e
r
S
r
e
M
-T
ra
p
e
in
p
u
ro
G
-T
ra
S
G
r
e
• Объединяет набор строковых значений или значений bytea.
• Например, выберем названия всех товаров.
in
S
u
ro
G
G
r
e
in
p
u
ro
STRING_AGG:
M
p
S
M
ro
u
M
p
S
Нетипичные функции агрегирования:
G
-T
ra
-T
ra
in
M
e
r
S
G
r
e
in
M
M
M
S
S
BOOL_OR:
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
• Логическое умножение для значений типа bool.
• Если все значения равны true, то возвращается true, иначе возвращается false.
u
ro
G
-T
ra
e
r
S
-T
ra
S
M
p
p
in
M
in
M
M
S
S
-T
ra
-T
ra
in
• Побитовое умножение (логическое И) для чисел типов: smallint, int, bigint, bit.
• Если параметр содержит значение NULL, то возвращается NULL.
BIT_OR:
p
e
in
p
u
G
r
e
M
e
r
S
G
-T
ra
BIT_AND:
ro
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
• Логическое сложение для значений типа bool.
• Если хотя бы одно равно true, то возвращается true, иначе возвращается false.
u
ro
G
r
e
in
Обучение для бизнеса
ra
38
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
• Побитовое сложение (логическое ИЛИ) для чисел типов: smallint, int, bigint, bit.
• Если параметр содержит значение NULL, то возвращается NULL.

39.

S
M
ra
39
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Aggregate
functions
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

40.

r
e
in
-T
ra
S
M
p
u
ro
G
G
p
u
ro
-T
ra
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
r
S
M
in
-T
ra
S
ro
u
M
p
S
Функции агрегирования
M
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
G
M
p
u
ro
p
e
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
S
M
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
Select branchName, sum(salesRub)
From singleSales
Group by branchName
in
S
-T
ra
in
M
e
r
S
G
r
e
in
S
M
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
Можно применить к срезу данных, где срезом является определенная колонка
в таблице или их декартово произведение
u
ro
r
e
-T
ra
in
M
S
M
u
ro
G
r
e
in
Обучение для бизнеса
ra
40
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
in
r
r
G
G
ro
ro
u
u
p
p
• Grouping SETS - позволяет уточнить декартово произведение
(а точнее применить не только его)
ra
G
-T
ra
S
G
r
e
in
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
SELECT "branchName", sum("salesRub") as sum
FROM singlesales
GROUP BY GROUPING SETS (("branchName"),());
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
u
u
p
p
С добавлением Итогового результата в сгруппированную таблицу

41.

r
G
e
in
-T
ra
S
M
p
u
ro
G
G
p
p
e
r
r
e
p
r
S
M
in
-T
ra
S
M
ro
u
M
p
S
CUBE и ROLLUP
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
u
S
ro
G
G
p
u
ro
G
-T
ra
e
r
S
S
M
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
in
M
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
-T
ra
in
M
p
S
M
ro
u
M
p
S
-T
ra
• CUBE(c1, c2, c3), где с1, c2, c3 — имена колонок, вернет следующие сочетания:
(с1, null, null)
(null, c2, null)
(null, null, c3)
(c1, c2, null)
(c1, null, c3)
(null, c2, c3)
(c1, c2, c3)
(null, null, null)
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
u
ro
G
r
e
in
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
CUBE — это что-то вроде множественного GROUPING SETS.
Возвращает данные для всех возможных сочетаний колонок, перечисленных внутри
u
ro
r
e
in
-T
ra
S
M
p
u
u
ro
ro
G
G
p
u
ro
G
r
e
Обучение для бизнеса
in
41
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
in
ra
G
-T
ra
S
p
M
M
S
S
-T
ra
-T
ra
in
• ROLLUP(c1, c2, c3, c4) вернет следующие сочетания:
(c1, c2, c3, c4)
(c1, c2, c3, null)
(c1, c2, null, null)
(c1, null, null, null)
(null, null, null, null)
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
r
e
M
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
ROLLUP так же, как и CUBE — что-то вроде множественного GROUPING SETS, с тем отличием, что
ROLLUP генерирует сочетания, убирая колонки по одной с конца

42.

S
M
ra
42
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Group by
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

43.

r
S
M
p
u
ro
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
M
u
ro
G
-T
ra
e
r
S
M
p
u
r
G
G
ro
ro
S
-T
ra
in
M
1. Найти кол-во уникальных счетов в нашей таблице.
u
p
e
in
p
u
ro
G
r
e
-T
ra
S
M
M
p
S
-T
ra
in
Что необходимо сделать?
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
Небольшая практика на Group by. Часть 1.
u
ro
G
-T
ra
-T
ra
-T
ra
in
M
e
r
S
r
e
in
in
M
e
r
S
3. Подсчитать кол-во записей и сумму продаж вместе для категории обои и сантехника.
-T
ra
p
e
in
p
u
ro
G
G
-T
ra
ro
u
in
p
e
r
2. Подсчитать кол-во записей и сумму продаж отдельно для категории обои и сантехника.
S
M
p
p
M
M
S
S
4. Построить уровень продаж (salesRub) в разрезе менеджера (fullName) от самых высоких
до самых низких.
u
ro
-T
ra
in
M
e
r
S
G
-T
ra
ro
G
r
e
in
S
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
6. Вывести информацию для каждого филиала, об кол-во обслуживаемых уникальных
клиентов. (обслуживание клиентов, считается если есть хотя бы одна транзакция по
нему) с сортировкой от большего к меньшему.
M
p
e
in
p
u
u
in
p
e
r
r
G
G
ro
ro
u
u
5. Построить уровень продаж (salesRub) в разрезе чеков (checkId) ) от самых высоких до
самых низких, предварительно убрав null в чеках и продажах.
u
ro
G
r
e
in
Обучение для бизнеса
ra
43
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
ro
ro
u
u
p
p
7. Вывести информацию о кол-во клиентов, приходящихся на менеджера и филиал.
Использовать сортировку сначала по Филиалу, потом по кол-во клиентов от большего к
меньшему. Так же убрать незаполненную информацию по менеджерам и филиалу.

44.

r
S
M
p
u
ro
ro
u
M
p
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
in
M
e
r
S
G
-T
r
r
G
r
e
in
-T
ra
S
M
p
e
M
p
S
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
-T
ra
S
M
M
p
S
-T
ra
in
Что необходимо сделать?
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
r
G
G
Небольшая практика на Group by. Часть 2.
u
r
G
G
ro
ro
u
8. Рассчитать кол-во уникальных чеков с суммой продажей более или равно 10 тыс.
p
e
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
r
e
in
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
9. Получить полную информацию о транзакции, по которой произведена максимальная
сумма продажи (salesRub)
-T
ra
S
M
u
u
p
p
M
M
S
S
-T
ra
-T
ra
10.Получить полную информацию о чеке, по которой прошло максимальная продажа. Учесть
особенность работы с double для sum, а именно при сравнении double лучше производить
округления чисел.
p
ro
G
-T
ra
in
M
e
r
S
r
e
in
S
S
-T
ra
-T
ra
in
M
e
r
S
G
12.Найти сколько клиентов в среднем обслуживает менеджер для каждого филиала.
Некорректно заполненные компании не учитывать (null).
S
u
e
in
p
u
ro
-T
ra
G
-T
ra
ro
u
in
p
e
r
r
G
G
ro
ro
11.Найти Id Чека с максимальным кол-во уникальных позиций (itemId). Убрать из выборки
незаполненные чеки (checkId)
M
ro
ro
u
u
p
p
M
e
u
ro
G
r
e
Обучение для бизнеса
in
44
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
r
r
G
G
14.Рассчитать среднее уровень продаж сделки в рублях и штуках, отдельно по каждой
категории (сделка – это все продажи, приходящиеся на один чек).
p
M
13.Найти в каждом филиале менеджера (fullName) который принес максимальную выручку
за 2012 год. Предварительно убрать Null в checkId, branchName и fullName Указание:
одному филиалу должно соответствовать один менеджер.

45.

r
in
r
u
ro
G
-T
ra
r
p
e
r
e
in
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
u
ro
G
-T
ra
S
M
p
p
u
u
ro
ro
G
G
u
ro
G
-T
ra
u
ro
G
r
e
in
Обучение для бизнеса
ra
45
p
e
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
in
p
u
ro
G
r
r
r
G
G
ro
ro
u
u
p
p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
r
e
in
M
S
M
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
-T
ra
S
r
e
-T
ra
in
r
r
e
in
p
u
ro
G
• Select branchName, sum(salesRub)
• From singleSales
• Group by branchName
• Having branchName in (‘Москва’,’Самара’)
e
M
p
u
ro
G
G
r
e
in
p
u
ro
G
r
e
in
-T
ra
S
M
Как фильтровать данные таблицы
оставить только два филиала: «Москва» и «Самара»
in
S
-T
ra
in
M
e
r
S
r
e
in
-T
ra
S
M
p
ro
u
p
e
in
p
u
ro
G
-T
ra
S
M
-T
ra
S
M
• Select branchName, sum(salesRub)
• From singleSales
• Group by branchName
ra
M
u
ro
G
G
r
e
in
p
u
ro
G
r
e
Как группировать данные таблицы
in
p
S
M
ro
u
M
p
S
Примеры группировки и фильтрации
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей

46.

S
M
ra
46
e
Обучение для бизнеса
in
r
r
e
in
S
r
M
e
M S -Tr a i n e r G r o u p
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
Having
ra
ra
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
Demo по
работе с
единичной
таблицей:
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
r
r
S
e
M
in
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

47.

r
S
e
M
ra
47
e
Обучение для бизнеса
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
u
u
p
p
M
M
M
S
S
S
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
e
p
r
G
ro
u
p
M
u
p
e
p
r
G
ro
u
p
M
Обсуждения
in
ro
-T
ra
G
u
in
ro
-T
ra
G
M
S
S
-T
ra
in
e
r
G
ro
u
S
-T
ra
-T
ra
e
in
r
S
r
S
e
M
in
M
G
ro
u
p
e
p
in
u
e
p
in
ro
-T
ra
G
-T
ra
Вопросы
r
S
M
in
r
e
in
M S -Tr a i n e r G r o u p
ra
ra
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
?
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
G
u
ro
u
p
e
p
e
p
in
ro
-T
ra
G
u
in
ro
-T
ra
G
r
r
G
G
ro
ro
S
S
p
M
u
S
p
M
u
M
-T
ra
-T
ra
-T
ra
e
in
e
M
in
r
S
r
r
S
e
M
in
r
r
G
r
-T
r
G
-T
r
G

48.

r
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
r
r
e
S
character varying [ (n) ]
varchar [ (n) ]
p
u
ro
G
r
e
in
-T
ra
S
p
u
ro
G
r
e
in
-T
ra
S
r
e
ro
u
in
G
r
e
in
Обучение для бизнеса
ra
S
M
-T
ra
r
e
in
ra
48
p
date and time, including time zone
S
G
ro
u
p
timestamptz
M
-T
ra
M
u
G
G
ro
date and time (no time zone)
r
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
M
p
u
G
-T
ra
S
time of day, including time zone
p
timetz
ro
u
p
time of day (no time zone)
timestamp [ (p) ] [ without time zone ]
timestamp [ (p) ] with time zone
e
-T
ra
r
e
in
p
u
ro
G
r
e
in
S
M
-T
ra
-T
ra
S
M
-T
ra
S
single precision floating-point number (4 bytes)
calendar date (year, month, day)
time [ (p) ] [ without time zone ]
time [ (p) ] with time zone
S
ro
G
r
e
in
p
u
ro
G
r
e
float4
double precision floating-point number (8 bytes)
M
date
M
variable-length character string
variable-length character string
float8
in
real
in
u
ro
G
r
fixed-length character string
M
p
u
e
-T
ra
S
M
ro
logical Boolean (true/false)
M
G
r
e
in
p
u
ro
G
r
e
in
M
double precision
M
p
char [ (n) ]
u
in
-T
ra
character [ (n) ]
ro
bool
G
signed two-byte integer
r
int2
text
S
-T
ra
in
M
signed four-byte integer
p
int, int4
boolean
u
ro
G
-T
ra
S
r
e
in
-T
ra
S
signed eight-byte integer
ro
int8
-T
ra
M
p
Description
S
u
M
bigint
p
e
in
p
u
ro
G
-T
ra
S
M
G
r
e
in
-T
ra
Aliases
S
Name
smallint
S
u
ro
G
G
r
e
in
p
u
ro
Основные типы данных в postgres
integer
M
p
S
M
ro
u
M
p
S
https://www.postgresql.org/docs/current/
datatype.html

49.

r
in
-T
ra
-T
ra
in
M
e
r
S
G
-T
r
r
M
e
r
S
G
-T
r
r
G
r
e
-T
ra
in
Работа с единичной таблицей
S
u
ro
G
G
p
u
u
in
p
e
r
r
e
in
p
u
M
p
S
M
ro
u
M
p
S
Как изменять типы данных при select запросах?
ro
M
e
r
S
G
-T
ra
ro
G
r
e
in
-T
ra
p
u
ro
G
G
p
e
u
ro
G
-T
ra
-T
ra
in
M
e
r
S
G
r
-T
ra
-T
ra
in
M
e
r
S
G
CAST ('01-OCT-2015' AS DATE);
e
in
p
u
ro
-T
ra
ro
u
in
p
e
r
r
CAST ('2015-01-01' AS DATE),
in
S
in
S
ro
u
M
p
SELECT
M
S
-T
ra
-T
ra
in
SELECT 40::double precision AS "square root of 40";
M
M
e
r
S
G
-T
ra
ro
SELECT CAST(40 AS double precision) AS "square root of 40";
S
M
M
M
S
S
SELECT '2019-06-15 14:30:20'::timestamp;
ro
ro
u
u
p
p
SELECT CAST(ARRAY[1, 2, 3] AS TEXT);
r
u
ro
G
-T
ra
e
r
S
-T
ra
in
M
S
M
p
u
u
ro
ro
G
G
p
u
ro
G
r
e
Обучение для бизнеса
in
49
ra
S
M
-T
ra
r
e
ra
in
S
M
G
-T
ra
ro
u
in
p
e
r
r
e
in
p
u
ro
G
r
e
ra
in
M S -Tr a i n e r G r o u p
p
e
in
p
u
ro
G
r
e
in
p
M
M
S
S
-T
ra
-T
ra
in
M
e
r
S
G
-T
ra
ro
u
in
p
e
r
G
G
SELECT '{1,2,3}'::INTEGER[] AS result_array;
English     Русский Правила