|
|
|
| ...есть таблица в базе MySQL ... ) примерно такая вот:
+--------+-----------+
| name | ip |
+--------+-----------+
| admin|01.002.5|
| fur | 1034.64|
|admin | 0134.43|
|admin |01.002.5|
| hukl | 1034.64|
| fur |174.150|
| fur |430.541|
+--------+----------+
Надо... чтобы считалось кол-во строк с каждым значением в столбце "name" с разными значениями в поле "ip"... например .. кол-во строк с именем admin с разнм ip - 2 ... ну вот надо чтобы все так считались и выводился список самых больших получившихся значений... начиная с самого большого... тока чтобы не все выводились.. а тока 30 наибольших)...
Вот из приведенный в пример таблицы.. должно быть так..) :
1_fur - 3
2_admin - 2
3_hukl - 1
...
вот..) заранее спасибо) | |
|
|
|
|
|
|
|
для: FBI
(03.03.2007 в 11:10)
| | select name, count(name) as nm from table group by name order by nm desc | |
|
|
|
|
|
|
|
для: Саша
(03.03.2007 в 12:47)
| | А полностью запрос и вывод немогли бы написать...? =) | |
|
|
|
|
|
|
|
для: Саша
(03.03.2007 в 12:47)
| | select name, count(name) as nm from table group by name order by nm desc
не пройдет
попробуй
select name, count(name) as nm from (select name, distinct(ip) from table) group by name order by nm desc limit 30 | |
|
|
|
|
|
|
|
для: вит
(03.03.2007 в 17:24)
| | Так ничего не выводится.. но вот так вот :
select name, count(name) as nm from table group by name order by nm desc limit 30
всё очень хорошо.. но только считаецо всё... а не тольно с уникальными ip .. =( | |
|
|
|
|
|
|
|
для: FBI
(03.03.2007 в 11:10)
| | cheops, привет =)) | |
|
|
|
|
|
|
|
для: FBI
(03.03.2007 в 18:51)
| | Можно поступить следующим образом
SELECT COUNT(*) AS total, CONCAT(name, ip) AS nkey
FROM tbl
GROUP BY nkey
|
| |
|
|
|
|
|
|
|
для: cheops
(03.03.2007 в 19:54)
| | Так что-то непонятное выводится... вроде как считаецо правильно... но выводится абсолютно все строки из таблицы... | |
|
|
|
|
|
|
|
для: FBI
(03.03.2007 в 20:08)
| | конструкция count может включать логическое условие например:
COUNT(IF(ip = 'ip который надо',1,NULL))
используйте эту возможность ... | |
|
|
|
|
|
|
|
для: FBI
(03.03.2007 в 20:08)
| | Странно, я воспроизвёл вашу таблицу - у меня считается всё правильно. У вас какая версия MySQL? | |
|
|
|
|
|
|
|
для: cheops
(03.03.2007 в 23:41)
| | Версия MySQL 4.0.18
А воть сюда никак нельзя добавить что нить чтобы с разными ip считалось? )
select name, count(name) as nm from table group by name order by nm desc limit 30 | |
|
|
|
|
|
|
|
для: FBI
(04.03.2007 в 10:02)
| | Поле total у всех 1? | |
|
|
|