Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- visit_id visit_date hosts views
- 1 2016-08-16 12 45
- 2 2016-08-01 10 95
- 3 2016-08-04 24 56
- 4 2016-08-17 45 134
- CREATE TEMPORARY TABLE last_days (
- day INT
- );
- INSERT INTO last_days
- VALUES (0), (1), (2), (3), (4), (5), (6), (7), (8), (9), (10),
- (11), (12), (13), (14), (15), (16), (17), (18), (19), (20),
- (21), (22), (23), (24), (25), (26), (27), (28), (29);
- SELECT
- DATE(NOW() - INTERVAL l.day DAY) AS day
- FROM
- last_days AS l;
- CREATE TABLE visits (
- visit_id INT,
- visit_date DATE,
- hosts INT,
- views INT
- );
- INSERT INTO visits
- VALUES
- (1, '2016-08-16', 12, 45),
- (2, '2016-08-01', 10, 95),
- (3, '2016-08-04', 24, 56),
- (4, '2016-08-17', 45, 134);
- SELECT
- DATE(NOW() - INTERVAL l.day DAY) AS day,
- COALESCE(SUM(v.hosts), 0) AS hosts,
- COALESCE(SUM(v.views), 0) AS views
- FROM
- last_days AS l
- LEFT JOIN
- visits AS v
- ON
- DATE(NOW() - INTERVAL l.day DAY) = v.visit_date
- GROUP BY
- DATE(NOW() - INTERVAL l.day DAY);
- +------------+-------+-------+
- | day | hosts | views |
- +------------+-------+-------+
- | 2016-07-19 | 0 | 0 |
- ...
- | 2016-08-01 | 10 | 95 |
- | 2016-08-02 | 0 | 0 |
- | 2016-08-03 | 0 | 0 |
- | 2016-08-04 | 24 | 56 |
- | 2016-08-05 | 0 | 0 |
- | 2016-08-06 | 0 | 0 |
- | 2016-08-07 | 0 | 0 |
- | 2016-08-08 | 0 | 0 |
- | 2016-08-09 | 0 | 0 |
- | 2016-08-10 | 0 | 0 |
- | 2016-08-11 | 0 | 0 |
- | 2016-08-12 | 0 | 0 |
- | 2016-08-13 | 0 | 0 |
- | 2016-08-14 | 0 | 0 |
- | 2016-08-15 | 0 | 0 |
- | 2016-08-16 | 12 | 45 |
- | 2016-08-17 | 45 | 134 |
- +------------+-------+-------+
Add Comment
Please, Sign In to add comment