powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как сделать такое?
14 сообщений из 14, страница 1 из 1
как сделать такое?
    #32659456
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем доброго времени суток.
Есть таблица, в ней ведется статистика посещений.
требуется получить сколько было посетителей за месяц, день, год.
Как составить запрос. Помогите.
...
Рейтинг: 0 / 0
как сделать такое?
    #32659993
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну, что корифеи?
Задача не по зубам!
...
Рейтинг: 0 / 0
как сделать такое?
    #32660080
Корифей
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Слишком сложная задача.
Надо будет подумать.
В понедельник приходи.
...
Рейтинг: 0 / 0
как сделать такое?
    #32660104
Vovan_tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А на выходные:мозги-на полку,
тушки-на солнце,
в печень- алкоголь!
...
Рейтинг: 0 / 0
как сделать такое?
    #32660147
ага, кроме последнего.
...
Рейтинг: 0 / 0
как сделать такое?
    #32660774
BigHarry
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хоть структуру таблицы статистики показал бы - может - придумали бы чего-нить...
...
Рейтинг: 0 / 0
как сделать такое?
    #32661965
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
структура такая
id - prim.key
data - timestamp
ip- varchar
page - varchar

вот структура.
надо посчитать сколько посешений было за сегодня (1 день), месяц, всего.
Но разбивать на 3 запроса не хочется.
Помогите составить запрос, чтобы 1 запросом посчитать все это.
...
Рейтинг: 0 / 0
как сделать такое?
    #32662095
Макс М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SELECT COUNT(*) FROM your_table WHERE data BETWEEN начало_дня AND конец_дня
где конец_дня = 24*60*60 + начало_дня
Начало дня - временная метка на 00:00:00 указанной даты
...
Рейтинг: 0 / 0
как сделать такое?
    #32662237
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
И что я получу?
А мне надо за день, месяц, всего.
Получать это 3 запросами - нехочется.
Как сделать 1. Напрегите мозги "корифеи"!
Или все "это мы не проходили, это нам не по зубам"?
...
Рейтинг: 0 / 0
как сделать такое?
    #32662339
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для 4.х
Первая строчка будет "сегодня", вторая "за месяц", третья "усего".

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
SELECT COUNT(*) AS result
FROM table2 
WHERE YEAR(_data) = YEAR(CURRENT_DATE())
AND DAYOFYEAR(_data) = DAYOFYEAR(CURRENT_DATE())
UNION ALL
SELECT COUNT(*) AS result
FROM table2 
WHERE YEAR(_data) = YEAR(CURRENT_DATE())
AND MONTH(_data) = MONTH(CURRENT_DATE())
UNION ALL
SELECT COUNT(*) AS result
FROM table2 

...
Рейтинг: 0 / 0
как сделать такое?
    #32662504
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для 4 sql. это работает. Но у хостера стоит 3.*
вот из-за этого и парюсь....
...
Рейтинг: 0 / 0
как сделать такое?
    #32662617
Фотография Хрен
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а ты сам не хочешь напрячь что-нибудь? Или считаешь что здесь все у тебя в прислуге работают?
...
Рейтинг: 0 / 0
как сделать такое?
    #32662637
Фотография Рыжий Кот
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А так?

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
SELECT
       COUNT(IF(YEAR(_data) = YEAR(CURRENT_DATE())
                AND DAYOFYEAR(_data) = DAYOFYEAR(CURRENT_DATE()),
                ip,
                NULL
                )
            )
       AS today,

       COUNT(IF(YEAR(_data) = YEAR(CURRENT_DATE())
                AND MONTH(_data) = MONTH(CURRENT_DATE()),
                ip,
                NULL
               )
            )
       AS current_month,

       COUNT(*)
       AS total

FROM table2 

...
Рейтинг: 0 / 0
как сделать такое?
    #32662706
Vovan_Tverskoy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
СПАСИБО
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / как сделать такое?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]