Акция!  Домен 34 грн, домен 55 грн, домен  - 200 грн домен  - 65 грн, домен  - 99 грн, домен  - 56 грн!, домен  - 425 грн!
Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
  • RUB
  • USD
  • EUR
  • UAH
Чат техподдержки
Вы являетесь клиентом?
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  MTC
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

MySQL. Помогите написать запрос

Форумы MySQL Помогите написать запрос
voowaa
9 лет
хостинг: есть
домен: есть
Помогите написать запрос
Есть таблица статистики:
id, time, ip, url, user-agent

Помогите написать запрос, который бы выдавал наиболее посещаемые урлы за последние N секунд
maximu_s
9 лет
хостинг: есть
домен: есть
1
SELECT * FROM TABLE_STAT
WHERE STR_TO_DATE('2010-05-21 23:59:00', '%Y-%m-%d %H:%i:%s')
AND STR_TO_DATE('2010-05-21 23:59:59', '%Y-%m-%d %H:%i:%s');
voowaa
9 лет
хостинг: есть
домен: есть
А что он даст? Как я понимаю, там должна быть конструкция вроде ... ORDER BY ... COUNT(...) и какое-то объединение.
maximu_s
9 лет
хостинг: есть
домен: есть
1
ну вообще то он даст выборку за период от и до,
а наиболее посещаемые урл - да, ты прав по GROUP BY ... ASC

Да и еще придется подставлять PHP переменные в формате date('Y-m-d H:i:s',time);

А вообще, если ты заговорил про объединение, то зачем спрашивать за такие мелочи, главное не делать так:
SELECT * FROM TABLE_STAT
WHERE time<="ВРЕМЯ" AND time>="ВРЕМЯ+10"
maximu_s
9 лет
хостинг: есть
домен: есть
1
сори, протупил, щас приду домой и напишу
maximu_s
9 лет
хостинг: есть
домен: есть
1
Во-первых в своем первом посте я упустил BETWEEN

Короче, вот рабочий вариант с выводом количества посещений(записей)

SELECT *,count(url) FROM table_stat t
where time_ BETWEEN
'' #<------------ ВРЕМЯ ОТ
AND
'' #<------------ ВРЕМЯ ДО
group by url

ВРЕМЯ ЛУЧШЕ, ДА И ПРОЩЕ ХРАНИТЬ В UNIXtime
Илья
9 лет
хостинг: есть
домен: есть
1. Поле id из таблицы со статистикой желательно убрать. Так как вряд-ли оно там нужно.
2. Создать индекс по полю time и url ALTER TABLE table_name ADD INDEX time (time, url)
3. Сам запрос:
SELECT COUNT(*) as amount, url
FROM table_name
WHERE time BETWEEN '01.02.2010 00:00:00' AND '01.02.2010 10:00:00'
GROUP BY url
ORDER BY amount DESC
voowaa
9 лет
хостинг: есть
домен: есть
Спасибо, ребята, буду теперь экспериментировать.
voowaa
9 лет
хостинг: есть
домен: есть
PS: Получилось.
Участвовать в общении на этом форуме могут только
зарегистрированные пользователи.

Если вы уже зарегистрированы Вам необходимо войти на форум.

Тема закрыта по истечению срока давности.