2012-11-15 112 views
4

我檢查了類似的問題,但它對我的確切問題沒有幫助。Mysql計數頻率

所以,我的表是這樣的:

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

     ?> 

的目標是建立一個圖表

回答

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

您現在有一個名爲$頻率的關聯數組,其年齡與鍵和它們的頻率作爲值。

+0

是,進出口使用PHP和JavaScript – pleaseDeleteMe

+0

進出口打印頻率陣列,它只是顯示的年齡,我在做什麼錯? – pleaseDeleteMe

+0

@skdnewbie你如何打印數組?使用'var_dump($頻率)'看到整個陣列,因爲PHP看到它 –

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