Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.10.31;
Скачать: CL | DM;

Вниз

Распределение записей в таблице по часам в сутках   Найти похожие ветки 

 
VictorT ©   (2004-09-10 14:15) [0]

Есть таблица, одним из полей которой является целое число (время в юникс-формате).
Нужно написать запрос, пока даже не знаю как подступиться к его написанию.
В результате он должен выдавать распределение кол-ва записей по часам, такого типа:

Час  Кол-во
0    12
1    456
2    435
3    44
4    443
...
22   76
23   45

СУБД - MySQL


 
Vlad ©   (2004-09-10 14:21) [1]

я правда не знаю, что такое "время в юникс-формате", но не это ли часом нужно?

select час, count(*) from table group by час


 
VictorT ©   (2004-09-10 14:30) [2]


> что такое "время в юникс-формате",

время, измеренное в секундах с начала Unix Epoch (January 1 1970 00:00:00 GMT).

>но не это ли часом нужно?
>
> select час, count(*) from table group by час

Что-то вроде этого, такой бы запрос был бы правильным для меня, если б в том поле хранился именно час суток, но там хранятся секунды.
Т.е. хранятся секунды, а погруппировать нужно по часам, да и не просто по часам, а по номеру часа в сутках.


 
pasha_golub ©   (2004-09-10 14:42) [3]

select secound*60*60, count(*) from table group by 1


 
pasha_golub ©   (2004-09-10 14:43) [4]

pasha_golub ©   (10.09.04 14:42) [3]
ээ-э-э, прогнал я.


 
pasha_golub ©   (2004-09-10 14:47) [5]

select HOUR(added), count(*) from <table_name> group by 1

Added - имя поля у котором время.


 
VictorT ©   (2004-09-10 14:49) [6]

pasha_golub ©   (10.09.04 14:42) [3]
ты наверно имел в виду что то типа
select ROUND(secound/60/60)/24, count(*) from table group by 1
Я думал так, но так ведь будут неучтены всякого рода переводы часов, високосные невисокосные года... или я что-то гоню? а то совсем уже торможу..


 
pasha_golub ©   (2004-09-10 14:50) [7]

VictorT ©   (10.09.04 14:49) [6]
Переводы часов что так, что так не учтуться ибо это мертвое время по определению.

Последний запрос работает. У себя проверил уже.


 
VictorT ©   (2004-09-10 14:51) [8]

Блин, в смысле так:
select ROUND(secound/60/60)%24, count(*) from table group by 1


 
pasha_golub ©   (2004-09-10 14:52) [9]

VictorT ©   (10.09.04 14:51) [8]
Витя, попробуй запрос из pasha_golub © [5] и не ... мозги. :)


 
VictorT ©   (2004-09-10 15:10) [10]

pasha_golub ©   (10.09.04 14:47) [5]
select HOUR(added), count(*) from <table_name> group by 1

Спасибо, немного подправил, и вроде как работает:
select HOUR(time)%24, count(*) from forum group by 1


 
VictorT ©   (2004-09-10 15:48) [11]

Хм.. что-то не то я напоправлял. Д и твой запрос тоже не совсем правильный получается.
Из манулала:

HOUR(time)
Возвращает час для аргумента time в диапазоне от 0 до 23:

mysql> SELECT HOUR("10:05:03");
       -> 10
А в моём случае аргумент не time, а datetime


 
pasha_golub ©   (2004-09-10 16:21) [12]

VictorT ©   (10.09.04 15:48) [11]
Витя, это по фигам. У меня тоже datetime (timestamp) и все прекрасно работает.


 
VictorT ©   (2004-09-10 16:50) [13]

pasha_golub ©   (10.09.04 16:21) [12]
Ты какими данными тестовую таблицу заполнял?
У меня выдаёт в первом столбце числа большие 23-х
И кол-во больше больше 24-ч в результате.
Именно поэтому я добавил %24, но это тоже неправильно.

А вот такой запрос выдал инфу более похожую на правдивую, но тоже есть сомнения:
select ROUND(secound/60/60)%24, count(*) from table group by 1


 
VictorT ©   (2004-09-13 11:13) [14]

Есть у кого-то ещё мысли?


 
pasha_golub ©   (2004-09-13 16:01) [15]

VictorT ©   (10.09.04 16:50) [13]
Витя, зафигачь мне логин в сервак, я зайду и посмотрю. Или сделай дамп данных, я у себя на серваке попробую.


 
VictorT ©   (2004-09-30 12:22) [16]

Как говорится, не прошло и пол года. Вот оно, решение:
select hour(from_unixtime(secound)), count(*) from table group by 1



Страницы: 1 вся ветка

Текущий архив: 2004.10.31;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.026 c
4-1096064034
VereM
2004-09-25 02:13
2004.10.31
Как узнать температру проца в дельфи.


4-1096310991
Комбинатор
2004-09-27 22:49
2004.10.31
Определение CD и Floppy.


1-1098106297
Pentium133
2004-10-18 17:31
2004.10.31
Сообщение WM_VSCROLL и пр...


14-1097672894
vecna
2004-10-13 17:08
2004.10.31
Менты с игрушечными пестиками...


14-1097270098
RexWell
2004-10-09 01:14
2004.10.31
MastakForum