2009-08-31 4 views
0

mysql의 테이블에서 간단한 통계 (백분율)를 계산하고 싶습니다. 문제의 테이블은 다음 의사 스키마를 가지고 :이 표는 그들이에서 제품을 구입할 때 고객이 있기 때문에 그 쿠폰의 사이트를 방문 여부, 전송 된 고객, 전송 고유의 쿠폰을 추적하나의 mysql 테이블에서 간단한 통계 계산하기

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

그 쿠폰. 대부분의 경우 이러한 datetime 열은 null이므로 고객이 방문하거나 구매하지 않았 음을 의미합니다.

쿠폰 유형별 방문 % 및 쿠폰 유형별 구매 %를 계산하고 싶습니다. 또한 가장 높은 방문 %와 구매 %를 가진 고객을 찾기 위해 customerId에 대해이를 계산할 수 있기를 바랍니다.

방문 % = # visits/# sends 이후, 나는 numer와 denominator를 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))으로 바꿉니다.

관련 문제