Correct filters on alldays / allhours
This commit is contained in:
parent
2c5151ee8a
commit
d3a1c467f9
12
database.go
12
database.go
|
@ -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 <= 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 + ";"
|
||||
statement = "WITH RECURSIVE hours(hour) AS ( VALUES (datetime((SELECT min(time) from views" + filters + "), '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" + filters + "), 'localtime') ) SELECT strftime('%Y-%m-%d %H', hours.hour) as first, COUNT(time) as second FROM hours LEFT OUTER JOIN (SELECT time from views" + filters + ") ON strftime('%Y-%m-%d %H', hours.hour) = strftime('%Y-%m-%d %H', time, 'localtime') 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), '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 + ";"
|
||||
statement = "WITH RECURSIVE days(day) AS ( VALUES (datetime((SELECT min(time) from views" + filters + "), 'localtime', 'start of day')) UNION ALL SELECT datetime(day, '+1 day') FROM days WHERE day <= date((SELECT max(time) from views" + filters + "), 'localtime') ) SELECT strftime('%Y-%m-%d', days.day) as first, COUNT(time) as second FROM days LEFT OUTER JOIN (SELECT time from views" + filters + ") ON strftime('%Y-%m-%d', days.day) = strftime('%Y-%m-%d', time, 'localtime') GROUP BY first" + orderstatement + ";"
|
||||
case HOURS, DAYS, WEEKS, MONTHS:
|
||||
format := ""
|
||||
switch request.view {
|
||||
|
@ -191,13 +191,7 @@ func (request *ViewsRequest) buildFilter() (filters string, parameters []sql.Nam
|
|||
}
|
||||
|
||||
func (request *ViewsRequest) buildDateTimeFilter(namedArg *[]sql.NamedArg) (dateTimeFilter string) {
|
||||
selector := ""
|
||||
switch request.view {
|
||||
case ALLHOURS, ALLDAYS:
|
||||
selector = "first"
|
||||
default:
|
||||
selector = "datetime(time, 'localtime')"
|
||||
}
|
||||
selector := "datetime(time, 'localtime')"
|
||||
if len(request.from) > 0 && len(request.to) > 0 {
|
||||
*namedArg = append(*namedArg, sql.Named("from", request.from))
|
||||
*namedArg = append(*namedArg, sql.Named("to", request.to))
|
||||
|
|
Reference in New Issue