Подсчет повторяющихся записей в базе данных - PullRequest
0 голосов
/ 01 августа 2009

Я хочу посчитать, сколько раз почтовый индекс вводится в базу данных. Я не уверен, использую ли я правильную функцию или нет. Также в конечном итоге мне нужно разделить почтовые индексы по годам их ввода в базу данных. Я знаю, как разделить годы. Что мне действительно нужно, так это подсчет повторяющихся записей. Вот мой код.

$sql = 'SELECT * FROM zip ORDER BY time_register'; 
$result = mysql_query($sql,$db) or die(mysql_error(). "<br />SQL: $sql");
$row = mysql_fetch_array($result);

do{
    $visitor_zip= array();
    $register = $row['time_register'];
    $register_year = date(Y,$register);

    print_r(array_count_values($visitor_zip));

} while($row = mysql_fetch_array($result))

Ответ : Вот мой код, который работает.

$sql = "SELECT `visitor_zip` AS `zip`, COUNT(`visitor_zip`) AS `cnt`
        FROM `zip`
        GROUP BY `visitor_zip`
        ORDER BY visitor_zip";

$result = mysql_query($sql,$db) or die(mysql_error(). "<br />SQL: $sql");

print '<table class="zip"><tr><td><b>Zip</b></td><td># of</td></tr>';
while($row = mysql_fetch_array($result)) {
    print '<tr><td>' . $row['zip'] .'</td><td>'.  $row['cnt'] . '</td></tr>';
}
print '</table>';

Ответы [ 2 ]

0 голосов
/ 01 августа 2009
select count(ZIPCODEFIELD) as cnt, ZIPCODEFIELD, time_register FROM zip
GROUP BY zipcode,time_register
0 голосов
/ 01 августа 2009

Я думаю, что это должно работать:

SELECT COUNT(*) AS cnt, zipcode FROM zip
GROUP BY zipcode
ORDER BY time_register
...