2009-08-31 15 views
0

mysqlのテーブルからいくつかの簡単な統計(パーセンテージ)を計算したいと思います。問題のテーブルには、次の擬似スキーマを持っています単一のmysqlテーブルで単純な統計を計算する

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

彼らは、顧客がそのせいでクーポンのサイトを訪問したかどうか、送信されたとき、彼らはから製品を購入したときに、この表には、顧客に送信されたユニークなクーポンを追跡しますそのクーポン。多くの場合、これらのdatetime列はnullであり、顧客が訪問または購入しなかったことを意味します。

訪問%をcouponTypeで、購入%をcouponTypeで計算したいと思います。また、customerIdの値を計算して、どの顧客が訪問率が最も高く、%を購入しているか調べることもできます。

訪問%=#visits /#sends以来、私は分子と分母を簡単にsqlを使って計算できますが、私はcouponTypeの単一クエリとcustomerIdの別の単一クエリで統計量を計算したいと考えていました。ありがとう!

答えて

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))に置き換えてください。