Найти новых покупателей и возвращающихся покупателей из таблиц заказов - PullRequest
3 голосов
/ 19 февраля 2012

У меня есть база данных электронной коммерции с довольно стандартными таблицами продаж. Соответствующие таблицы:

  1. Таблица заказов. Поля похожи на: OrderID, CustomerID, OrderDate, ...

  2. Таблица клиентов. CustoerID, CustomerFirstName, CustomerLastName, ...

Мне нужно найти два значения, а именно:

  1. Всего новых покупателей (в течение определенного периода времени *)

    • В основном, это первые покупатели в течение определенного периода времени
  2. Всего вернувшихся покупателей (в течение определенного периода времени *)

    • В основном это покупатели, которые купили раньше, до периода времени

    • период времени, мы предоставим в качестве входных данных, например, в течение 1 недели

Моя база данных находится в MySQL.

Вопрос:

Какой самый простой и эффективный способ получить две суммы? 1. Всего новых покупателей 2. Всего вернувшихся покупателей

Нужно ли писать программу на PHP? Или я могу просто использовать операторы SQL для достижения этой цели?

Спасибо за любую помощь.

Ответы [ 3 ]

1 голос
/ 19 февраля 2012

Это можно сделать исключительно в SQL:

Количество покупателей в первый раз:

SELECT
  COUNT(DISTINCT CustomerID) 
FROM Orders 
WHERE OrderDate BETWEEN <startdate> AND <enddate>
/* Buyers with only one order record */
AND CustomerID IN (SELECT CustomerID FROM Orders GROUP BY CustomerID HAVING COUNT(*)=1)

Количество повторных покупателей:

SELECT
  COUNT(DISTINCT CustomerID) 
FROM Orders 
WHERE OrderDate BETWEEN <startdate> AND <enddate>
/* Buyers with more than one order record */
AND CustomerID IN (SELECT CustomerID FROM Orders GROUP BY CustomerID HAVING COUNT(*)>1)
0 голосов
/ 19 февраля 2012

Всего новых покупателей ВЫБРАТЬ c. * ОТ клиентов c, Заказы o ГДЕ c.CustomerID = o.CustomerID И c.CustomerID не вошли (ВЫБРАТЬ o1.CustomerID из заказов o1)

Всего вернувшихся покупателей Всего новыхпокупатели ВЫБРАТЬ c. * ОТ клиентов c, Заказы o ГДЕ c.CustomerID = o.CustomerID И c.CustomerID в (ВЫБРАТЬ o1.CustomerID из заказов o1)

вы можете добавить временные рамки к обоим запросам

0 голосов
/ 19 февраля 2012

Оба! Вы должны написать оператор SQL, который возвращает данные из базы данных, и вызвать оператор из скрипта PHP, чтобы справиться с ним. Оператор SQL позволяет извлекать данные, а код PHP - управлять и в конечном итоге задавать данные на веб-странице (переводя их в язык HTML).

Это распространенный сценарий, но если вам нужна более подробная процедура с кодом, используйте google и получите хорошее кодирование!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...