2013-08-10 4 views
0

Я попытался около 10 различных вариантов запросов похож на следующее:Подсчет количества записей в неделю давая массивное количество NULL

SELECT WEEKOFYEAR(dateline) AS weekno, COUNT(1) AS posts 
FROM post 
GROUP BY WEEKOFYEAR(dateline) 
LIMIT 0 , 30 

Полученные данные всегда несколько результатов и около 600000 «NULL», как так:

weekno posts 
NULL 591843 
1 57 
2 42 
3 25 
4 44 
5 9 
6 38 
7 15 
8 41 
9 10 
10 130 
11 77 
12 69 
13 36 
14 25 
15 25 
16 24 
17 44 
18 42 
19 14 
20 49 
21 70 
22 41 
23 40 
24 57 
25 40 
26 31 

Вот структура таблицы для dateline:

# Name Type Collation Attributes Null Default  Extra 
7 dateline int(10)   UNSIGNED No 0 

Все строки имеют значение в dateline.

Мне нужно получить какую-то группу по неделям, потому что в конечном счете я хочу рассчитать активность сообщения с и без указанной секции форума. Я не знаю, почему я получаю все эти NULL результатов.

+0

почему ваша дата int? –

+0

Вот как это делается в vBulletin. – Jared

ответ

1

Я думаю, что ваша дата хранится в unixtime целочисленном формате, при условии, что это unixtime попробовать FROM_UNIXTIME функция

SELECT WEEKOFYEAR(FROM_UNIXTIME(dateline)) AS weekno, COUNT(1) AS posts 
FROM post 
GROUP BY WEEKOFYEAR(FROM_UNIXTIME(dateline)) 
LIMIT 0 , 30 

Чтобы вернуть недели от другого года попробовать это

SELECT 
FROM_UNIXTIME(dateline, '%Y') Year, 
WEEKOFYEAR(FROM_UNIXTIME(dateline)) AS weekno, COUNT(1) AS posts 
FROM post 
GROUP BY FROM_UNIXTIME(dateline, '%Y'), WEEKOFYEAR(FROM_UNIXTIME(dateline)) 
LIMIT 0 , 30 

DEMO HERE

+0

Спасибо. Я пробовал решения с использованием FROM_UNIXTIME, но я предполагаю, что в них были другие ошибки. – Jared

+0

Вы можете разместить образцы данных для строк, которые бросают ошибки? –

+0

Я не хотел нажимать enter. Теперь это работает, если я ограничусь в прошлом году, но как бы я это сделал в течение нескольких лет? Кроме того, я добавил строку: 'DATE_ADD (FROM_UNIXTIME (dateline), INTERVAL 1 - DAYOFWEEK (FROM_UNIXTIME (dateline)) DAY) AS 'WeekStart'' – Jared

Смежные вопросы