2016-12-23 2 views
2

У меня есть таблица вроде этого:SQL: Сколько посещений в будние дни?

Visit,Visitdate; 
A,2015-03-31T11:11:00.000+0000; 
B,2015-03-31T12:11:00.000+0000; 
C,2015-04-31T16:11:00.000+0000; 
D,2015-07-31T16:15:00.000+0000; 
C,2015-04-31T16:11:00.000+0000; 
D,2015-07-31T16:15:00.000+0000; 

...

мне нужно знать количество посещений в рабочие дни (понедельник, вторник, ...)

Я попытался с следующий код, но он не работает:

`SELECT date_format (Visitdate, 'EEEE') FROM table, 
COUNT (*) AS VisitCount from table group by Visitdate` 

с SELECT date_format (Visitdate, 'EEEE') FROM table Я могу указать день недели.

SELECT Visitdate, COUNT (*) AS VisitCount from table group by Visitdate С Я могу подсчитать количество посещений за YYYY-MM-DDTHH:MM:SS

Однако я не в состоянии объединить оба кода, чтобы сделать его работу.

Заранее благодарен!

+0

Какая СУБД вы используете? –

ответ

1

Вы можете использовать:

SELECT 
    date_format(Visitdate, 'EEEE'), COUNT(*) AS VisitCount 
FROM table 
GROUP BY date_format(Visitdate, 'EEEE') 

Таким образом вы группируете по именам дня и подсчитываете строки, соответствующие каждому дню (по группе)

+0

Это работает! Благодаря! – Sylvari

+0

Добро пожаловать :) Поблагодарите также за голосование за ответ, если у вас достаточно репутации для этого :) – Dekel

0

Ты почти там - вам просто нужно сгруппировать в будний день (как вы отформатировали его в списке выбора) вместо самой даты:

SELECT DATE_FORMAT (Visitdate, 'EEEE'), COUNT (*) AS VisitCount 
FROM  mytable 
GROUP BY DATE_FORMAT (Visitdate, 'EEEE') 
+1

Это работает! Благодаря! – Sylvari

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