Mysql
 sql >> Baza danych >  >> RDS >> Mysql

MySql pobiera rekordy lub dane według dziennych, tygodniowych, miesięcznych i rocznych

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

Jeśli podoba Ci się ten post, nie zapomnij zasubskrybować mojego publicznego notatnika, aby uzyskać więcej przydatnych rzeczy


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Kiedy zamykać kursory za pomocą MySQLdb

  2. Jak zastosować metodę bindValue w klauzuli LIMIT?

  3. Obsługa transakcji w MySQL

  4. Kodowanie znaków JDBC

  5. Przykłady REGEXP MySQL