За последние 24 часа нас посетил 18641 программист и 1702 робота. Сейчас ищут 877 программистов ...

Помогите с запросом mysql DISTINCT

Тема в разделе "MySQL", создана пользователем mmm3, 15 сен 2009.

  1. mmm3

    mmm3 Активный пользователь

    С нами с:
    15 сен 2009
    Сообщения:
    3
    Симпатии:
    0
    Помогите с запросом mysql

    есть таблица
    CREATE TABLE IF NOT EXISTS `natalistat` (
    `site` text NOT NULL,
    `stran` text NOT NULL,
    `date` timestamp NOT NULL default CURRENT_TIMESTAMP on update CURRENT_TIMESTAMP,
    `ip` text NOT NULL,
    `id` text NOT NULL,
    `user_agent` text NOT NULL,
    `referer` text NOT NULL,
    `pg` text NOT NULL
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;


    вот запрос SELECT DISTINCT referer FROM natalistat WHERE DAY(date)=12 and MONTH(date)=09 and YEAR(date)=2009

    запрос объединяет уникальные страницы(откуда пришли)
    как к данному запросу добавить данные о том сколько уникальных переходов с каждой этой страницы пришло

    пример

    yandex.ru - 9 хитов 7 хостов
    rambler.ru - 3 хитов 1 хостов
    и т д
    и отсортировать от большего количества хитов к меньшему.

    Помогите пожайлуста уже два дня вожусь над этой проблемой.
     
  2. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    один переход - одна запись в БД?
    тогда наверное так
    [sql]SELECT COUNT(id) FROM natalistat WHERE DAY(date)=12 and MONTH(date)=09 and YEAR(date)=2009 GROUP BY referer [/sql]
    вобщем читайте GROUP BY, а сортировка ORDER BY
     
  3. mmm3

    mmm3 Активный пользователь

    С нами с:
    15 сен 2009
    Сообщения:
    3
    Симпатии:
    0
    да один заход одна запись.

    SELECT COUNT(id) FROM natalistat WHERE DAY(date)=12 and MONTH(date)=09 and YEAR(date)=2009 GROUP BY referer

    выводит только значения. а как одновременно со значениями вывести поле referer(уникальные записи)?
     
  4. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    SELECT COUNT(id), referer FROM....
     
  5. mmm3

    mmm3 Активный пользователь

    С нами с:
    15 сен 2009
    Сообщения:
    3
    Симпатии:
    0
    SELECT COUNT( id ) , referer
    FROM natalistat
    WHERE DAY( date ) =12
    AND MONTH( date ) =09
    AND YEAR( date ) =2009
    GROUP BY referer
    LIMIT 0 , 30

    сработало.

    помогите с хостами еще. уникальные хосты - уникальные ip адреса.

    в этом же запросе можно эти данные взять или новый запрос нужен?
     
  6. Человек

    Человек Активный пользователь

    С нами с:
    24 июл 2008
    Сообщения:
    56
    Симпатии:
    0
    Адрес:
    Донецк
    ну почитайте Вы мануал по GROUP BY, намного инереснее)

    я так понял нужно выбрать строки с уникальным сочетанием двух полей(referer и ip)? тогда GROUP BY ip, referer