计算真实bool的百分比为false

时间:2014-06-13 07:36:26

标签: php mysql sql database count

首先,我对MySQL很陌生。

我有一个名为bike_main的表,在这个表中有两列;一个用于日期,一个用于north_bool。我试图计算真正的布尔值与假布尔值的百分比。例如,如果north_bool中的10行中有4行设置为1,那么结果将为40%。我试过了;

    $northRidersQuery = 'SELECT count(north_bool) as number_of_rows FROM bike_main ORDER BY id DESC LIMIT 1';
    $northRidersResult=mysql_query($northRidersQuery);
    $northRidersDisplay = mysql_fetch_assoc($monthlyRidersResult);

并用

输出
<h3><?php echo $northRidersDisplay ?></h3>

这不会输出任何内容。

3 个答案:

答案 0 :(得分:0)

试试这个:

while ($northRidersDisplay = mysql_fetch_assoc($monthlyRidersResult)) {
    echo $row["number_of_rows"]; // echo column name
}

答案 1 :(得分:0)

COUNT(north_bool)计算north_bool不是NULL的行数。如果它不为空,则不关心它是0还是1。如果您只想计算1个值,请使用SUM(north_bool)

$northRidersQuery = 'SELECT SUM(north_bool)*100/COUNT(*) AS north_pct
                     FROM bike_main';
$northRidersResult = mysql_query($northRidersQuery);
$northRidersRow = mysql_fetch_assoc($northRidersResult);
echo "<h3>{$northRidersRow['north_pct']}%</h3>";

最后,您需要使用$northRidersRow['north_pct']来访问结果中的列。

答案 2 :(得分:0)

你可以试试

$qry = "select (x.true_tot/x.tot)*100 as perc 
        from ( select sum(north_bool=1) as true_tot, count(*) as tot from test ) x " ;
$result = mysql_query($qry);
$result_set = mysql_fetch_assoc($result);
echo '<h3>'.$result_set["perc"].'</h3>';