Вычисление простой статистики по одной таблице MySQL - PullRequest
0 голосов
/ 01 сентября 2009

Я хотел бы вычислить некоторые простые статистические данные (проценты) из таблицы в MySQL. Данная таблица имеет следующую псевдошхему:

TABLE: coupons
couponId (int)
couponType (int)
customerId (int)
sentOn (datetime)
visitedOn (datetime)
purchasedOn (datetime)

В этой таблице отслеживаются уникальные купоны, отправленные клиентам, когда они были отправлены, посетил ли клиент сайт из-за этого купона и когда они приобрели продукт по этому купону. Во многих случаях эти столбцы даты и времени не имеют значения, что означает, что клиент не посещал и не совершал покупки.

Я бы хотел рассчитать% посещения по couponType и покупку% по couponType. Я также хотел бы иметь возможность рассчитать их для customerId, чтобы увидеть, у каких клиентов самый высокий процент посещений и% покупок.

Так как посещение% = # посещений / # отправляет, я могу легко вычислить числитель и знаменатель, используя sql, но я надеялся вычислить статистику в одном запросе для couponType и другом единственном запросе для customerId. Спасибо!

1 Ответ

0 голосов
/ 01 сентября 2009

Я бы предложил что-то вроде этого:

SELECT SUM(IF(visitedOn IS NULL, 0, 1)) / COUNT(1) AS percent_visited,
  SUM(IF(purchasedOn IS NULL, 0, 1)) / COUNT(1) AS percent_purchased
FROM coupons
GROUP BY couponType

Я предполагаю, что sentOn никогда не бывает NULL. Если это тоже иногда может быть NULL, просто замените COUNT(1) на SUM(IF(sentOn IS NULL, 0, 1)).

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