Mysql计数频率

时间:2012-11-15 13:08:02

标签: mysql arrays count frequency

我已经检查了类似的问题,但它在我的确切问题中没有帮助。

所以,我的表是这样的:

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

等。

我需要计算年龄的频率:

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 个答案:

答案 0 :(得分:7)

您需要按公共年龄对行进行分组,然后计算每组中的行数:

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];
}

现在你有一个名为$ frequency的关联数组,其中年龄为关键字,频率为数值。

答案 1 :(得分:1)

select age, name, count(*) freq from user_age group by age

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

答案 2 :(得分:0)

select age, count(*) freq from mytable group by age

答案 3 :(得分:0)

select age, count(id) as freq from table group by age