Как анализировать товарные заказы?

анализ данных

image.png【тема】

Есть две таблицы, одна со списком заказов, таблица под названием «Список заказов» и таблица со списком пользователей под названием «Реестр». Соответствие идентификатора пользователя «Сведения о заказе» в идентификаторе пользователя и «Реестр» в.

image.png

image.pngВопрос 1: Узнайте количество людей, которые успешно оплатили каждый день, оплаченную сумму и количество оплаченных заказов Вопрос 2: Количество оплаченных пользователей и оплаченное количество зарегистрированных пользователей на 14 июня 2013 г.

[Вопрос 1 Идеи решения]

Запросите количество людей, которые успешно платили каждый день, уплаченную сумму и количество оплаченных заказов.

1. В вопросе упоминается запрос данных «каждый день».Что касается «каждого дня», вам следует подумать о «сводке группы», упомянутой в «Monkey Learn SQL from Zero», чтобы решить проблему такого типа.

Сгруппируйте по «времени оплаты», используйте сводную функцию для количества людей, платящих каждый день (count подсчитывает количество строк в столбце идентификатора пользователя), используйте сводную функцию для суммы ежедневного платежа (сумма суммирует столбец для оплаты сумма) и использовать количество оплаченных заказов в день. Чтобы использовать функцию суммирования (количество строк в столбце с номером заказа)

2. Идентификатор пользователя, сумма платежа и номер заказа, упомянутые выше, указаны в «Детали заказа».

image.png3. Следует отметить, что количество подсчитываемых людей не является «человеко-временем», поэтому при подсчете «идентификатора пользователя» требуется процесс дедупликации.

4. В заголовке четко не указан формат данных "оплачиваемое время". По опыту ежедневной обработки данных необходимо использовать функцию обработки времени (date_format) для унификации формата времени сначала как "год месяц день ", то есть date_format(оплаченное время, '%Y-%c-%d')

image.png5. Обратите внимание на данные "успешный платеж", далее нужно с помощью условия (где) указать "статус заказа" как "успешный", а "неудачный" заказ исключить, то есть добавить подчиненный к SQL на предыдущем шаге.

image.pngрезультат поиска

image.png

【Тестовый сайт для этого вопроса】

1. Если речь идет о проблеме «каждого», вам нужно подумать об использовании групповой сводки или оконной функции для ее решения.

2. Изучил применение SQL для группировки данных.Этот вопрос заключается в фильтрации данных в соответствии с условиями перед группировкой с использованием предложения where. Если вы хотите указать условия для данных после группировки результатов, не забудьте использовать has, а не where

3. Исследуйте применение сводных функций SQL Наиболее часто используемыми сводными функциями являются следующие:

image.png

【Вопрос 2 Идеи решения】

Запрос количества оплаченных пользователей и оплаченного количества зарегистрированных пользователей 14 июня 2013 г.

Во-первых, мы используем метод многомерного анализа дизассемблирования для дизассемблирования проблемы.

1. Сначала узнайте "зарегистрированные пользователи на 14.06.2013", эти данные можно узнать из "регистрации"

image.png

2. Затем посчитайте общее количество "оплаченных лиц" и "сумму оплаченных" "зарегистрированных пользователей на 14 июня 2013 г. Эти данные можно найти в "Детали заказа"

image.png

3. Поскольку задействованы две таблицы, требуется объединение нескольких таблиц. Этот вопрос просит нас найти пользователей, которые зарегистрировались в «Реестре», и пользователей, которые использовали указанную дату в «Сведениях о заказе», то есть данные в столбце «Идентификатор пользователя» двух таблицы, которые имеют пересечение данных.

Все общие данные, которые необходимо искать и которые появляются в обеих таблицах одновременно, должны использовать «внутреннее соединение» в объединении нескольких таблиц (внутреннее соединение).

image.png

image.pngПоскольку мы хотим подсчитать количество людей, которые заплатили, и сумму платежа, мы можем получить это, добавив сводную функцию в SQL на предыдущем шаге.

image.png4. Найдя общие для столбца «Идентификатор пользователя» двух таблиц данные, задайте условие, где register.registration time = «14 июня 2013 г.». При этом это должен быть действующий заказ, то есть детали заказа.Статус заказа = "успешно"

5. Как и в предыдущем вопросе, будет использоваться функция обработки времени (date_format), сначала унифицируйте формат времени как «год месяц день», то есть date_format (время платежа, «%Y-%c-%d» )

image.pngрезультат поиска

image.png

【Тестовый сайт для этого вопроса】

1. Изучите использование простых операторов SQL-запросов и логических операторов.К логическим операторам относятся:

image.png2. Исследуйте многотабличные запросы. С помощью оператора «как» вы можете настроить имя таблицы, которое может легко сравнить две таблицы. И как сказать, какое объединение использовать.

image.pngРекомендация: Как выучить SQL с нуля?

image.png