计算单个mysql表的简单统计信息

时间:2009-08-31 22:45:04

标签: mysql statistics

我想从mysql中的表中计算一些简单的统计信息(百分比)。有问题的表具有以下伪模式:

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

此表跟踪发送给客户的唯一优惠券,发送时间,客户是否因该优惠券访问了网站,以及何时从该优惠券购买产品。在许多情况下,这些日期时间列为空,表示客户未访问或购买。

我想通过couponType计算访问次数%,并通过couponType购买%。我还希望能够为customerId计算这些,以查看哪些客户的访问率最高%和购买%。

由于访问%=#visits / #send,我可以使用sql轻松计算分子和分母,但我希望在couponType的单个查询和customerId的另一个查询中计算统计数据。谢谢!

1 个答案:

答案 0 :(得分:0)

我建议这样的事情:

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))