W tym przykładzie pokażę kilka pomocnych zapytań MySql, aby wyświetlić raporty analityczne użytkownika lub produktu dotyczące wydajności produktów.
Załóżmy, że masz witrynę z bazą produktów i musisz obliczyć liczbę kliknięć i unikalnych kliknięć produktu, Lub musisz wyświetlić wykres miesięcznych lub rocznych kliknięć lub unikalnych kliknięć. W tym celu te zapytania są bardzo przydatne.
Tutaj mam tabelę analityczną produktu z kilkoma danymi analitycznymi.
product_analytic
Identyfikator produktu | Kliknij | IP | Utworzono | Zaktualizowano |
---|---|---|---|---|
1 | 1 | 192.168.1.1 | 01.01.2016 00:00:00 | 01.01.2016 00:00:00 |
1 | 1 | 192.168.1.1 | 01.01.2016 00:00:00 | 01.01.2016 00:00:00 |
2 | 1 | 192.168.2.1 | 2016-01-02 00:00:00 | 2016-01-02 00:00:00 |
.. | .. | 1.. | … | … |
.. | .. | 1.. | … | … |
.. | .. | 1.. | … | … |
Z tej tabeli muszę pobierać kliknięcia i unikatowe kliknięcia w dniu, tygodniu, miesiącu i roku produktu.
Pobieranie danych codziennie
SELECT DATE(created) AS date, COUNT(click) AS click, COUNT(DISTINCT(ip)) AS unique_click FROM product_analytic WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59' GROUP BY date ORDER BY date |
WYJŚCIE:
Pobieranie danych co tydzień
SELECT DATE_FORMAT(created, '%X-%V') AS date, COUNT(click) AS click, COUNT(DISTINCT(ip)) AS unique_click FROM product_analytic WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59' GROUP BY date ORDER BY date |
Pobieranie danych co miesiąc
SELECT DATE_FORMAT(created, '%Y-%m') AS date, COUNT(click) AS click, COUNT(DISTINCT(ip)) AS unique_click FROM product_analytic WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59' GROUP BY date ORDER BY date |
Pobieranie danych co rok
SELECT DATE_FORMAT(created, '%Y') AS date, COUNT(click) AS click, COUNT(DISTINCT(ip)) AS unique_click FROM product_analytic WHERE created BETWEEN '2016-01-01 00:00:00' AND '2016-01-31 23:59:59' GROUP BY date ORDER BY date |