Модулі MySales

Базові SQL-запитиМожливості

Для створення базових звітів користувач повинен мати базове розуміння того, як працюють SQL-запити. На сьогодні існує кілька діалектів SQL; у цій документації запити будуть описані на діалекті T-SQL, який використовується в СУБД MS SQL Server.

94%
Точність прогнозу

Точність для постійного асортименту в Drogas

15-20%
Зростання доходів

Зростання обороту в Chudo Market після впровадження

40%
Зменшення втрат

Скорочення списань свіжих продуктів у Blyzenko

Платформа ШІ

Єдина платформа ШІ поєднує прогнозування, поповнення, ціноутворення та промо — сигнали передаються автоматично між модулями, тому замовлення, ціни та кампанії завжди синхронізовані.

Аналітика

Нижче описані основні команди SQL, необхідні для базової роботи зі скриптами: SELECT, FROM, WHERE, JOIN, GROUP BY, ORDER BY.

Чудовий посібник із SQL з прикладами та можливістю спробувати різні команди доступний за посиланням .

SELECT SELECT — це основна команда для вибірки даних із бази даних.

Ця команда зазвичай використовується разом із командою FROM, яка вказує, з якої таблиці слід отримати дані.

Також можна вибирати дані з кількох таблиць — це описано в розділі JOIN .

Стандартний запит SELECT виглядає так: SELECT column1, column2, ... FROM table_name; column1, column2, ...

у цьому запиті — це назви полів (стовпців) у таблиці, з якої користувач хоче отримати дані.

Якщо потрібно вибрати всі дані, використовується *: SELECT * FROM table_name; Наприклад, результатом запиту SELECT sku_id, article_name FROM products; будуть два стовпці з кодом SKU та назвою з таблиці PRODUCTS.

А результатом запиту SELECT * FROM products; будуть усі стовпці з таблиці PRODUCTS.

При створенні запитів SELECT рекомендується призначати псевдоніми (аліаси) стовпцям: SELECT column_1 SKU, column_2 STORE FROM table_name; .

У цьому прикладі SKU та STORE — псевдоніми стовпців column_1 і column_2 — вони надалі використовуватимуться в роботі з конструктором звітів.

Дізнатися більше про SELECT та спробувати його в дії можна за посиланням .

Докладніше про концепцію псевдонімів можна прочитати за посиланням .

Окрім стандартного вибору полів через SELECT, можна також вибирати конкретні дані.

Нижче наведені основні функції, які можна використовувати безпосередньо в запиті SELECT.

SELECT DISTINCT — використовується для вибору унікальних значень поля. Наприклад: SELECT DISTINCT column_1 FROM table_name; .

Цей запит виведе лише унікальні значення в column_1.

Дізнатися більше про SELECT DISTINCT та спробувати його в дії можна за посиланням .

SELECT TOP — використовується для вибору перших N значень з поля. Наприклад: SELECT TOP 100 column_1 FROM table_name; .

Цей запит виведе лише перші 100 значень у column_1. Дізнатися більше про SELECT TOP та спробувати його в дії можна за посиланням .

MIN/MAX — використовується для виведення найменшого або найбільшого значення в стовпці.

Наприклад: SELECT MIN(column_1) FROM table_name; . Цей запит виведе найменше значення в column_1.

Дізнатися більше про MIN / MAX та спробувати їх у дії можна за посиланням .

COUNT, AVG, SUM — COUNT() підраховує кількість рядків у стовпці; AVG() виводить середнє значення стовпця; SUM() — виводить суму всіх значень.

SELECT COUNT(column_1) FROM table_name; . Цей запит виведе кількість рядків у column_1. SELECT AVG(column_1) FROM table_name; .

Цей запит виведе середнє значення в column_1. SELECT SUM(column_1) FROM table_name; .

Цей запит виведе суму всіх значень у column_1. Дізнатися більше про COUNT, AVG, SUM та спробувати їх у дії можна за посиланням .

WHERE Команда WHERE використовується для задання умов вибірки: SELECT column1, column2, ...

FROM table_name WHERE condition; Наприклад, якщо потрібно вибрати всі значення, що перевищують 10, слід вказати умову WHERE: SELECT column1 FROM table_name WHERE column1 > 10; Також у команді WHERE є математичні оператори: більше, менше, не дорівнює тощо.

Вони використовуються при завданні умови.

Дізнатися більше про WHERE, доступні оператори та спробувати їх у дії можна за посиланням .

У WHERE може бути кілька умов; для їх визначення використовуються логічні оператори "AND", "OR", "NOT".

Якщо необхідно, щоб виконувалися одночасно обидві умови, використовується AND.

Якщо необхідно, щоб виконувалася хоча б одна з кількох умов, використовується OR.

Якщо потрібно, щоб дані відображалися тоді, коли умова не виконується, використовується NOT.

Дізнатися більше про AND, OR, NOT та спробувати їх у дії можна за посиланням .

Оператори IN та LIKE є операторами порівняння в умові WHERE.

IN дозволяє робити вибірку за кількома значеннями, наприклад: SELECT SKU_ID, ITEM_CODE FROM PRODUCTS WHERE SKU_ID in (2,4,8) Цей запит відобразить лише ті SKU, чий SKU_ID дорівнює 2, 4 або 8.

Дізнатися більше про IN та спробувати його в дії можна за посиланням .

LIKE дозволяє шукати заданий шаблон у даних стовпця, наприклад: SELECT SKU_ID, ARTICLE_NAME FROM PRODUCTS WHERE ARTICLE_NAME like (%Ham%) Цей запит відобразить ті SKU, у назві яких є слово "Ham".

Дізнатися більше про LIKE та спробувати його в дії можна за посиланням .

Також у WHERE можна працювати зі стовпцями, що містять значення NULL (поле без значення).

Стандартні умови WHERE не працюють із NULL. Для цього необхідно використовувати оператори IS NULL та IS NOT NULL.

Дізнатися більше про IS NULL та IS NOT NULL та спробувати їх у дії можна за посиланням .

ORDER BY Команда ORDER BY дозволяє сортувати виведені дані за певними правилами. SELECT column1, column2, ...

FROM table_name WHERE condition ORDER_BY column1 asc/desc Дізнатися більше про ORDER BY та спробувати її в дії можна за посиланням .

JOIN Команда JOIN використовується після команди FROM і слугує для відображення стовпців із різних взаємопов'язаних таблиць у одному запиті.

Наприклад, якщо є таблиця PRODUCTS зі стовпцями SKU_ID, GROUP_ID та таблиця GROUPS зі стовпцями GROUP_ID і GROUP_NAME, JOIN дозволяє вибрати дані SKU_ID і GROUP_NAME з різних таблиць, пов'язавши їх за GROUP_ID.

Існує кілька типів JOIN: (INNER) JOIN — може використовуватися з префіксом INNER або без нього — відображає лише ті записи, що мають однакові значення в обох таблицях; LEFT JOIN — відображає всі записи з лівої таблиці (як зазначено у FROM) та відповідні записи з правої таблиці (як зазначено у JOIN); RIGHT JOIN — відображає всі записи з правої таблиці (як зазначено у JOIN) та відповідні записи з лівої таблиці (як зазначено у FROM); FULL JOIN — відображає всі записи за наявності відповідності в лівій або правій таблиці; Дізнатися більше про JOIN та спробувати його в дії можна за посиланням .

Детальніше вивчити та спробувати кожен тип JOIN можна за посиланнями: (INNER) JOIN , LEFT JOIN , RIGHT JOIN , FULL JOIN .

GROUP BY Команда GROUP BY використовується після команди WHERE і слугує для групування даних за схожістю.

Наприклад, можна згрупувати всі товари з однаковим кодом.

Вона використовується, якщо після SELECT у запиті є агрегуючі функції — такі як COUNT, MAX, MIN, SUM, AVG тощо.

SELECT column1, sum(column2) FROM table_name WHERE condition GROUP BY column1 ORDER_BY column1 asc/desc Хороший приклад використання GROUP BY: потрібно відобразити, наприклад, продажі за 4 тижні (з 10-го по 13-й тиждень 2019 року) у розрізі вибраного SKU для двох магазинів.

У таблиці SALES_SKU продажі розбиті по тижнях; потрібно підсумувати продажі за 4 тижні.

Для такого випадку запит матиме вигляд: SELECT sku_id, store_id, sum(sales_volume) vol FROM sales_sku WHERE sku_id = 93 and week between 201910 and 201913 and store_id in (1,2) GROUP BY sku_id, store_id ORDER_BY vol asc Результат виконання такого запиту виглядає так: Важливо, що GROUP BY має бути вказано не лише по SKU_ID, але й по STORE_ID, оскільки ці два поля не використовуються в агрегуючій функції.

Якщо вказати лише GROUP BY SKU_ID, система видасть помилку, що STORE_ID не застосовано ні в GROUP BY, ні в жодній іншій агрегуючій функції.

Дізнатися більше про GROUP BY та спробувати його в дії можна за посиланням .