7

我检查了类似的问题,但对我的确切问题没有帮助。

所以,我的表是这样的:

id age
1  30
2  36
3  30
4  52
5  52
6  30
7  36

ETC..

我需要计算年龄的频率:

age freq
30   2
36   3
52   2

我怎样才能抓住这个频率?在此之后,我将需要处理该数据,因此可能需要使用数组?谢谢!

function drawChart() {

      // Create the data table.

      var data = new google.visualization.DataTable();
      data.addColumn('string', 'age');
      data.addColumn('number', 'freq');

        <?php
            while($row = mysql_fetch_row($result)) 
            {
            $frequencies[$row[0]] = $frequencies[1];
            echo "data.addRow(['{$row[0]}', {$row[1]}]);";
            }

        ?>

目标是建立一个图表

4

4 回答 4

12

您需要按共同年龄对行进行分组,然后计算每组中有多少行:

SELECT age, COUNT(*) AS freq FROM ages GROUP BY age

要将其转换为数组,请在 PHP 中执行以下操作:

$frequencies = array ();
$result = mysql_query('SELECT age, COUNT(*) AS freq FROM table GROUP BY age');
if($result === false) { handle error here... }
while($row = mysql_fetch_row($result)) {
    $frequencies[$row[0]] = $row[1];
}

您现在有一个名为 $frequencies 的关联数组,其中年龄作为键,频率作为值。

于 2012-11-15T13:11:10.270 回答
2
select age, name, count(*) freq from user_age group by age

Sqlfiddle:http ://sqlfiddle.com/#!2/266d5/2

于 2012-11-15T13:20:58.457 回答
0
select age, count(*) freq from mytable group by age
于 2012-11-15T13:11:24.467 回答
0
select age, count(id) as freq from table group by age
于 2012-11-15T13:11:28.357 回答