|
|
|
|
$res = mysql_query("SELECT DISTINCT namerekl AS nam, COUNT(DISTINCT namerekl) AS cnt FROM log_vh WHERE rekl_set = '$my_rekl_set'");
while($row = mysql_fetch_assoc($res)) echo "<br> ", $row['nam'], " ", $row['cnt'], "<br>";
| Пытаюсь вытащить из таблицы log_vh все уникальные значения namerekl и подсчитать, сколько раз встречается каждое из них - не получается!
(Выводится одно значение namerekl и общее количество уникальных записей). | |
|
|
|
|
|
|
|
для: Владимир55
(11.03.2009 в 00:33)
| |
SELECT namerekl AS nam, COUNT(namerekl) FROM log_vh
GROUP BY namerekl;
|
| |
|
|
|
|
|
|
|
для: root
(11.03.2009 в 20:15)
| | Как я ни пытался, так и не смог получить желаемое из этого кода! Имею просто список значений, а количество таких значений непонятно где...
Пробовал даже вот так:
$res = mysql_query("SELECT str_vh AS cnt, COUNT(str_vh) FROM log_vh
GROUP BY str_vh");
while($row = mysql_fetch_assoc($res))
{
$str_vh = $row['str_vh'];
$n_str_vh = $row['cnt'];
echo "<br> str_vh $str_vh = n_str_vh $n_str_vh ";
}
|
Требуется получить список $str_vh -> $n_str_vh, где первым является уникальное значение, а вторым - сколько раз оно встречается в таблице log_vh. | |
|
|
|
|
|
|
|
для: Владимир55
(17.03.2009 в 14:27)
| |
<?php
$q = 'SELECT str_vh, COUNT(str_vh) as cnt FROM log_vh
GROUP BY str_vh';
$res = mysql_query($q);
while($row = mysql_fetch_assoc($res))
{
$str_vh = $row['str_vh'];
$n_str_vh = $row['cnt'];
echo "<br> str_vh $str_vh = n_str_vh $n_str_vh ";
}
|
| |
|
|
|
|
|
|
|
для: Root
(17.03.2009 в 14:53)
| | Так информация выдается, спасибо!
Скажите, а верен ли такой код (для понимания сути):
<?php
$res = mysql_query("SELECT DISTINCT str_vh AS cnt, COUNT(str_vh) AS ncnt FROM log_vh
GROUP BY str_vh");
while($row = mysql_fetch_assoc($res))
{
// echo mysql_errno()." 641 : ".mysql_error()."<BR>";
$n++;
$str_vh = $row['cnt'];
$n_str_vh = $row['ncnt'];
echo "<br>№ $n. str_vh $str_vh = n_str_vh $n_str_vh ";
}
|
| |
|
|
|
|
|
|
|
для: Владимир55
(17.03.2009 в 15:03)
| | Использование DISTINCT вместе с GROUP BY в вашем случае лишнее.
SELECT DISTINCT str_vh FROM log_vh;
| и
SELECT str_vh FROM log_vh GROUP BY str_vh;
| вернут одинаковые результаты.
Если нужно посчитать кол-во, используется функция COUNT.
Аггрегатным функциям нужен оператор GROUP BY для того чтобы группировать результат по какому-нибудь столбцу.
Поэтому:
SELECT str_vh, COUNT(str_vh) as cnt
FROM log_vh
GROUP BY str_vh;
|
| |
|
|
|
|
|
|
|
для: Root
(17.03.2009 в 15:40)
| | Непростое это дело, однако!
Спасибо за код и за разъяснение! | |
|
|
|