fathom/count/pageviews.go

47 lines
1.1 KiB
Go
Raw Normal View History

package count
2016-12-11 13:50:01 +00:00
import (
"github.com/dannyvankooten/ana/db"
)
func Pageviews(before int64, after int64) float64 {
2016-12-11 13:50:01 +00:00
// get total
stmt, err := db.Conn.Prepare(`
SELECT
SUM(a.count)
FROM archive a
WHERE a.metric = 'pageviews' AND UNIX_TIMESTAMP(a.date) <= ? AND UNIX_TIMESTAMP(a.date) >= ?`)
2016-12-11 13:50:01 +00:00
checkError(err)
defer stmt.Close()
var total float64
stmt.QueryRow(before, after).Scan(&total)
return total
}
func PageviewsPerDay(before int64, after int64) []Point {
2016-12-11 13:50:01 +00:00
stmt, err := db.Conn.Prepare(`SELECT
SUM(a.count) AS count,
DATE_FORMAT(a.date, '%Y-%m-%d') AS date_group
FROM archive a
WHERE a.metric = 'pageviews' AND UNIX_TIMESTAMP(a.date) <= ? AND UNIX_TIMESTAMP(a.date) >= ?
GROUP BY date_group`)
2016-12-11 13:50:01 +00:00
checkError(err)
defer stmt.Close()
2016-12-11 13:50:01 +00:00
rows, err := stmt.Query(before, after)
checkError(err)
defer rows.Close()
2016-12-11 13:50:01 +00:00
results := make([]Point, 0)
defer rows.Close()
for rows.Next() {
p := Point{}
err = rows.Scan(&p.Value, &p.Label)
checkError(err)
results = append(results, p)
}
2016-12-11 13:50:01 +00:00
results = fill(after, before, results)
return results
}