Файлы к уроку:
В этом уроке:
- Получить все таблицу целиком
- Отбор отдельных столбцов
- Получить уникальные значения
- Сортировка результата
- Фильтрация строк
- Операторы сравнения
- AND / OR
- BETWEEN
- IN
- LIKE / ILIKE
- NOT
- Закрепляем новые знания
Получить всю таблицу целиком
select *
from bike_sales
Выбрать отдельные столбцы
select
order_date,
customer_country,
profit
from bike_sales
Получить уникальные значения
-- Уникальные значения стран
select distinct customer_country
from bike_sales
-- Уникальные пары страна-штат
select distinct customer_country, customer_state
from bike_sales
Сортировка результата
-- Сортировка по возрастанию даты
select
order_date,
customer_country,
customer_state,
product_category,
product_subcategory,
product_name,
revenue,
profit
from bike_sales
order by order_date
-- Сначала выполняется сортировка по странам по алфавиту
-- Внутри страны сортировка по штатам по алфавиту
-- Внутри штата сортировка по датам по возрастанию
-- Внутри даты сортировка по revenue по убыванию
select
order_date,
customer_country,
customer_state,
product_category,
product_subcategory,
product_name,
revenue,
profit
from bike_sales
order by
customer_country,
customer_state,
order_date,
revenue desc
Фильтрация строк / WHERE
-- Продажи клиентам из Франции
select *
from bike_sales
where customer_country = 'France'
-- Продажи клиентам из Франции, Германии или Соединенного Королевства
select *
from bike_sales
where customer_country = 'France'
or customer_country = 'Germany'
or customer_country = 'United Kingdom'
-- Продажи велосипедов в США и Канаде
select *
from bike_sales
where (customer_country = 'United States'
or customer_country = 'Canada')
and product_category = 'Bikes'
-- Продажи определенных моделей велосипедов
select *
from bike_sales
where product_name in ('Mountain-100 Black',
'Road-150 Red',
'Touring-1000 Blue')
-- Все строки кроме тех, где название товара совпадает с любым, что в скобках
select *
from bike_sales
where product_name not in ('Mountain-100 Black',
'Mountain-100 Black',
'Road-150 Red',
'Touring-1000 Blue',
'Touring-1000 Yellow')
-- Продажи между 1 Января и 31 Марта
select *
from bike_sales
where order_date between '2011-01-01'
and '2011-03-31'
-- Строки, где в product_name входит подстрока "Silver"
select *
from bike_sales
where product_name like '%Silver%'
-- Строки, где в product_name входит подстрока,
-- которая начинается с на "1",
-- далее следуют 2 любых символа,
-- потом пробел,
-- а после пробела любые символы
select *
from bike_sales
where product_name like '%1__ %'
-- Выбрать строки с продажами аксессуаров
-- Название товара содержит подстроку "bike" в любом регистре
-- Сортировка по стране, штату, дате, подкатегории, названию и убыванию выручки
select *
from bike_sales
where 1 = 1
and product_category = 'Accessories'
and product_name ilike '%bike%'
order by
customer_country,
customer_state,
order_date,
product_subcategory,
product_name,
revenue desc
Закрепление
-- Страна США
-- Штаты Нью-Йорк и Техас
-- Категория Аксессуары
-- Товар в названии содержит подстроку "Mountain"
select *
from bike_sales
where 1 = 1
and customer_country = 'United States'
and customer_state in ('New York', 'Texas')
and product_category = 'Accessories'
and product_name like '%Mountain%'
-- Перечень велосипедов, которые хотя бы 1 раз были проданы в Канаде
-- За исключением велосипедов черного цвета
select distinct product_name
from bike_sales
where 1 = 1
and customer_country = 'Canada'
and product_category = 'Bikes'
and product_name not like '%Black%'