jlelse
/
kis3
Archived
1
Fork 0

Fix allhours / alldays showing extra day

This commit is contained in:
Jan-Lukas Else 2019-04-24 11:54:04 +02:00
parent 1d0d31f045
commit 95c5cdc704
1 changed files with 2 additions and 2 deletions

View File

@ -151,9 +151,9 @@ func (request *ViewsRequest) buildStatement() (statement string, parameters []sq
case USERAGENTNAMES:
statement = "SELECT substr(useragent, 1, pos-1) as first, COUNT(*) as second from (SELECT *, instr(useragent,' ') AS pos FROM views)" + filters + "group by first" + orderstatement + ";"
case ALLHOURS:
statement = "WITH RECURSIVE hours(hour) AS ( VALUES (datetime((SELECT min(time) from views), 'localtime', 'start of day')) UNION ALL SELECT datetime(hour, '+1 hour') FROM hours WHERE hour <= date((SELECT max(time) from views), '+1 day') ) SELECT strftime('%Y-%m-%d %H', hours.hour) as first, COUNT(views.time) as second FROM hours LEFT OUTER JOIN views ON strftime('%Y-%m-%d %H', hours.hour) = strftime('%Y-%m-%d %H', time, 'localtime')" + filters + "GROUP BY first" + orderstatement + ";"
statement = "WITH RECURSIVE hours(hour) AS ( VALUES (datetime((SELECT min(time) from views), 'localtime', 'start of day')) UNION ALL SELECT datetime(hour, '+1 hour') FROM hours WHERE hour <= strftime('%Y-%m-%d %H', (SELECT max(time) from views), 'localtime') ) SELECT strftime('%Y-%m-%d %H', hours.hour) as first, COUNT(views.time) as second FROM hours LEFT OUTER JOIN views ON strftime('%Y-%m-%d %H', hours.hour) = strftime('%Y-%m-%d %H', time, 'localtime')" + filters + "GROUP BY first" + orderstatement + ";"
case ALLDAYS:
statement = "WITH RECURSIVE days(day) AS ( VALUES (datetime((SELECT min(time) from views), 'localtime', 'start of day')) UNION ALL SELECT datetime(day, '+1 day') FROM days WHERE day <= date((SELECT max(time) from views), '+1 day') ) SELECT strftime('%Y-%m-%d', days.day) as first, COUNT(views.time) as second FROM days LEFT OUTER JOIN views ON strftime('%Y-%m-%d', days.day) = strftime('%Y-%m-%d', time, 'localtime')" + filters + "GROUP BY first" + orderstatement + ";"
statement = "WITH RECURSIVE days(day) AS ( VALUES (datetime((SELECT min(time) from views), 'localtime', 'start of day')) UNION ALL SELECT datetime(day, '+1 day') FROM days WHERE day <= date((SELECT max(time) from views), 'localtime') ) SELECT strftime('%Y-%m-%d', days.day) as first, COUNT(views.time) as second FROM days LEFT OUTER JOIN views ON strftime('%Y-%m-%d', days.day) = strftime('%Y-%m-%d', time, 'localtime')" + filters + "GROUP BY first" + orderstatement + ";"
case HOURS, DAYS, WEEKS, MONTHS:
format := ""
switch request.view {