2011-03-17 40 views
1

我在搞乱一些统计工具。我的DB是这样的:简单的PHP和MySQL问题 - COUNT

ip   | campaign_id | authorized | stamp 
----------------------------------------------------- 
182.74.723.1 | 1   | 0   | 12349210211 
82.14.127.1 | 3   | 1   | 29834043899 

我想有一个行说:

有 “XXX” 上的广告系列ID为 “X” 打( “XXX” 被批准, “XXX” 为未授权)

到目前为止我的代码:

$query = "SELECT campaign_id, COUNT(ip) FROM stats GROUP BY campaign_id"; 
$result = mysql_query($query) or die(mysql_error()); 

// Print out result 
while($row = mysql_fetch_array($result)) { 
    echo "There are <b>". $row['COUNT(ip)'] ." hits</b> on campaign with <b>ID ". $row['campaign_id'] ."</b> (HERE COMES THE PART I'M LOOKING FOR)"; 
    echo "<br />"; 
} 

现在的问题:我无法找到一个解决方案来算“权威性”的不同值。 如果有人能帮我解决这个问题,我会非常高兴,提前致谢!

回答

2

试试这个SQL查询:

SELECT campaign_id, 
    COUNT(ip) as tot, 
    sum(authorized=0) as a0, 
    sum(authorized=1) as a1, 
    .... 
    FROM stats GROUP BY campaign_id 
+0

+1并认为我使用嵌套查询!耻辱! – JohnP 2011-03-17 18:31:29

+0

谢谢,聪明的解决方案! – DonCroce 2011-03-17 19:16:38