Читать книгу Цены в SQL. 18 задач по скидкам и прайсам (Глеб Зайцев) онлайн бесплатно на Bookz
Цены в SQL. 18 задач по скидкам и прайсам
Цены в SQL. 18 задач по скидкам и прайсам
Оценить:

3

Полная версия:

Цены в SQL. 18 задач по скидкам и прайсам

Глеб Зайцев

Цены в SQL. 18 задач по скидкам и прайсам

Перед первой задачей

Почему цена — это не просто число

Цена связана со скидкой, себестоимостью, комиссией, остатками, конкурентами и целевой прибылью.

Эта книга показывает, как проверять прайс SQL-запросами до того, как плохая цена попадёт к покупателю.

Задачи не обещают идеальную стратегию ценообразования, а дают практику безопасных расчётов и аудита.

Как читать задачи

Сначала отделяйте текущую цену от финальной цены после скидки и комиссии.

Затем проверяйте, что цена не ниже пола и не уничтожает прибыль.

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

Маршрут по задачам

1. Посчитать цену после скидки

2. Посчитать прибыль по прайсу

3. Найти минимальную цену для цели

4. Учесть комиссию в минимальной цене

5. Найти цены ниже пола

6. Сравнить цену с конкурентом

7. Разбить товары на ценовые сегменты

8. Посчитать эффект промокода

9. Найти нулевые и отрицательные цены

10. Взять последнюю цену SKU

11. Посчитать среднюю цену категории

12. Сравнить выручку ценовых сегментов

13. Посчитать стоимость остатков по рознице

14. Найти слишком большие скидки

15. Проверить прибыль новой цены

16. Округлить цену до формата .99

17. Найти кандидатов на повышение цены

18. Собрать аудит прайса

Практические задачи

Задача 1. Посчитать цену после скидки

Рабочий вопрос

Нужно получить фактическую цену продажи, если в таблице хранится базовая цена и процент скидки.

Данные

CREATE TABLE offers(sku TEXT, price INTEGER, discount_rate REAL);

INSERT INTO offers VALUES ('A',1000,0.10),('B',500,0.00),('C',800,0.25);

Запрос

SELECT sku, ROUND(price * (1 - discount_rate), 2) AS final_price

FROM offers

ORDER BY sku;

Ожидаемый результат

[["A", 900.0], ["B", 500.0], ["C", 600.0]]

Почему работает

Финальная цена считается как price умножить на долю после скидки.

Запрос сделан на маленькой синтетической таблице, поэтому ответ можно проверить глазами и повторить в SQLite.

Явный ORDER BY или отдельная агрегация фиксируют смысл результата, а не оставляют его на случайный порядок строк.

Где легко ошибиться

Скидка 25 означает не минус 25 рублей, а минус 25 процентов, если поле хранит долю 0.25.

Самостоятельная проверка

Какая final_price у C? Объясните ответ по исходным строкам и условию запроса.

Ответ: 600.0. Это следует из исходных строк и условия запроса.

Задача 2. Посчитать прибыль по прайсу

Рабочий вопрос

Нужно проверить, сколько остаётся с каждой продажи после себестоимости при текущей цене.

Данные

CREATE TABLE offers(sku TEXT, price INTEGER, cost INTEGER);

INSERT INTO offers VALUES ('A',1000,650),('B',500,420),('C',300,350);

Запрос

SELECT sku, price - cost AS gross_profit

FROM offers

ORDER BY sku;

Ожидаемый результат

[["A", 350], ["B", 80], ["C", -50]]

Почему работает

Разница цены и себестоимости показывает базовую прибыль до комиссий и налогов.

Запрос сделан на маленькой синтетической таблице, поэтому ответ можно проверить глазами и повторить в SQLite.

Явный ORDER BY или отдельная агрегация фиксируют смысл результата, а не оставляют его на случайный порядок строк.

Где легко ошибиться

Положительная цена сама по себе не означает положительную прибыль.

Самостоятельная проверка

Какой SKU убыточный? Объясните ответ по исходным строкам и условию запроса.

Ответ: C: 300 минус 350 даёт минус 50.

Задача 3. Найти минимальную цену для цели

Рабочий вопрос

Нужно рассчитать цену, при которой товар даёт заданную рублёвую прибыль после себестоимости.

Данные

CREATE TABLE products(sku TEXT, cost INTEGER, target_profit INTEGER);

INSERT INTO products VALUES ('A',650,200),('B',300,150),('C',900,100);

Запрос

SELECT sku, cost + target_profit AS min_price

FROM products

ORDER BY sku;

Ожидаемый результат

[["A", 850], ["B", 450], ["C", 1000]]

Почему работает

Минимальная цена без комиссий равна себестоимости плюс целевая прибыль.

Запрос сделан на маленькой синтетической таблице, поэтому ответ можно проверить глазами и повторить в SQLite.

Явный ORDER BY или отдельная агрегация фиксируют смысл результата, а не оставляют его на случайный порядок строк.

Где легко ошибиться

Если есть комиссия площадки, эта простая формула станет нижней оценкой, а не финальной ценой.

Самостоятельная проверка

Какая min_price у B? Объясните ответ по исходным строкам и условию запроса.

Конец ознакомительного фрагмента.

Текст предоставлен ООО «Литрес».

Прочитайте эту книгу целиком, купив полную легальную версию на Литрес.

Безопасно оплатить книгу можно банковской картой Visa, MasterCard, Maestro, со счета мобильного телефона, с платежного терминала, в салоне МТС или Связной, через PayPal, WebMoney, Яндекс.Деньги, QIWI Кошелек, бонусными картами или другим удобным Вам способом.

Вы ознакомились с фрагментом книги.

Для бесплатного чтения открыта только часть текста.

Приобретайте полный текст книги у нашего партнера:


Полная версия книги

Всего 10 форматов

bannerbanner