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

Jak uzyskać łączną liczbę użytkowników dziennie w MySQL?

Dzienna łączna liczba użytkowników jest bardzo przydatnym wskaźnikiem KPI do analizy wzrostu liczby użytkowników dla każdej firmy. Ponieważ jednak w MySQL nie ma wbudowanej funkcji do obliczania bieżącej sumy, oto zapytanie SQL, aby uzyskać łączną liczbę użytkowników dziennie, znane również jako suma krocząca według daty lub łączna liczba użytkowników.

Jak uzyskać łączną liczbę użytkowników dziennie w MySQL

Oto kroki, aby uzyskać łączną liczbę użytkowników dziennie w MySQL. Załóżmy, że masz następującą tabelę users(date_joined,user_id) który zawiera wszystkie identyfikatory użytkowników z datą rejestracji/rejestracji/dołączenia do Twojej firmy.

mysql> create table users(date_joined date,user_id int);

mysql> insert into users(date_joined,user_id)
       values('2020-04-28',213),
       ('2020-04-28',214),
       ('2020-04-30',215),
       ('2020-04-28',216),
       ('2020-04-28',217),
       ('2020-04-30',218),
       ('2020-04-28',219),
       ('2020-04-28',220),
       ('2020-04-30',221),
       ('2020-05-01',222),
       ('2020-05-01',222),
       ('2020-05-01',223),
       ('2020-05-04',224),
       ('2020-05-04',225),
       ('2020-05-04',226),
       ('2020-05-04',226),
       ('2020-05-04',227),
       ('2020-05-04',228),
       ('2020-05-05',229),
       ('2020-05-05',230),
       ('2020-05-05',231),
       ('2020-05-05',232),
       ('2020-05-06',233),
       ('2020-05-06', 234);

mysql> select * from users;
+-------------+---------+
| date_joined | user_id |
+-------------+---------+
| 2020-04-28  |     213 |
| 2020-04-28  |     214 |
| 2020-04-30  |     215 |
| 2020-04-28  |     216 |
| 2020-04-28  |     217 |
| 2020-04-30  |     218 |
| 2020-04-28  |     219 |
| 2020-04-28  |     220 |
| 2020-04-30  |     221 |
| 2020-05-01  |     222 |
| 2020-05-01  |     222 |
| 2020-05-01  |     223 |
| 2020-05-04  |     224 |
| 2020-05-04  |     225 |
| 2020-05-04  |     226 |
| 2020-05-04  |     226 |
| 2020-05-04  |     227 |
| 2020-05-04  |     228 |
| 2020-05-05  |     229 |
| 2020-05-05  |     230 |
| 2020-05-05  |     231 |
| 2020-05-05  |     232 |
| 2020-05-06  |     233 |
| 2020-05-06  |     234 |
+-------------+---------+

Najpierw przyjrzymy się zapytaniu SQL, aby obliczyć dzienną liczbę rejestracji

mysql> select date(date_joined),count(user_id) 
       from users 
       group by date(date_joined);
+-------------------+----------------+
| date(date_joined) | count(user_id) |
+-------------------+----------------+
| 2020-04-28        |        6       |
| 2020-04-30        |        3       |
| 2020-05-01        |        3       |
| 2020-05-04        |        6       |
| 2020-05-05        |        4       |
| 2020-05-06        |        2       |
+-------------------+----------------+

Następnie oto zapytanie SQL, aby uzyskać łączną liczbę użytkowników dziennie w MySQL. Użyjemy powyższego SQL jako podzapytania, aby uzyskać bieżącą sumę w SQL.

mysql> set @csum := 0;

mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date(date_joined) as date_joined,count(user_id) as new_users
             from users
             group by date(date_joined)
            ) as temp
            order by date_joined;
+-------------+-----------+-------------+
| date_joined | new_users | total_users |
+-------------+-----------+-------------+
| 2020-04-28  |         6 |           6 |
| 2020-04-30  |         3 |           9 |
| 2020-05-01  |         3 |          12 |
| 2020-05-04  |         6 |          18 |
| 2020-05-05  |         4 |          22 |
| 2020-05-06  |         2 |          24 |
+-------------+-----------+-------------+

W powyższym zapytaniu ustawiamy tymczasową zmienną csum na 0. Następnie dla każdego wiersza używamy jej do obliczania i przechowywania skumulowanej sumy użytkowników.

Po uzyskaniu łącznej liczby użytkowników dziennie w MySQL, możesz wykreślić to na wykresie liniowym lub na pulpicie nawigacyjnym za pomocą narzędzia do raportowania, takiego jak Ubiq, i udostępnić je swojemu zespołowi. Oto wykres liniowy utworzony za pomocą Ubiq.

Jeśli chcesz uzyskać warunkową sumę bieżącą w MySQL, możesz dodać klauzulę WHERE w podzapytaniu, zgodnie ze swoimi wymaganiami.

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date(date_joined) as date_joined,count(user_id) as new_users
             from users 
             WHERE <condition>
             group by date(date_joined)
            ) as temp
            order by date_joined;

Możesz łatwo zmodyfikować powyższe zapytanie SQL, aby obliczyć łączną liczbę użytkowników według tygodnia, miesiąca, kwartału i roku. Przyjrzyjmy się im po kolei. Użyjemy funkcji DATE_FORMAT, aby łatwo uzyskać dane tygodnia i miesiąca od kolumn daty.

Przeczytaj bonus:Jak obliczyć przychody w MySQL

Jak uzyskać łączną liczbę użytkowników na tydzień w MySQL

Oto zapytanie SQL, aby uzyskać łączną liczbę użytkowników w MySQL według tygodnia. W zapytaniu SQL, aby uzyskać łączną liczbę użytkowników dziennie, wystarczy zmienić funkcję agregacji w podzapytaniu z date(date_joined) do date_format(date_format,’%U’) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date_format(date_joined,'%U') as date_joined,
               count(user_id) as new_users
             from users
             group by date_format(date_joined,'%U')
            ) as temp
            order by date_joined;

W powyższym zapytaniu możesz również użyć funkcji WEEK zamiast DATE_FORMAT, czyli użyć WEEK(date_joined) zamiast DATE_FORMAT(date_joined,’%U’)

Przeczytaj bonus:Jak uzyskać rekordy z bieżącego miesiąca w MySQL

Jak uzyskać łączną liczbę użytkowników miesięcznie w MySQL

Oto zapytanie SQL, aby uzyskać łączną liczbę użytkowników według miesiąca w MySQL. W zapytaniu SQL, aby uzyskać łączną liczbę użytkowników dziennie, wystarczy zmienić funkcję agregacji w podzapytaniu z date(date_joined) do date_format(date_format,’%b’) .

mysql> set @csum := 0;

mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select date_format(date_joined,'%b') as date_joined,
               count(user_id) as new_users
             from users
             group by date_format(date_joined,'%b')
            ) as temp
            order by date_joined;

Przeczytaj bonus:Jak uzyskać dane sprzedaży z ostatnich 3 miesięcy w MySQL

Jak uzyskać łączną liczbę użytkowników na kwartał w MySQL

Oto zapytanie SQL, aby uzyskać skumulowaną całkowitą liczbę użytkowników według kwartału w MySQL. W zapytaniu SQL, aby uzyskać łączną liczbę użytkowników dziennie, wystarczy zmienić funkcję agregacji w podzapytaniu z date(date_joined) do kwartał(format_daty) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select quarter(date_joined) as date_joined,
               count(user_id) as new_users
             from users
             group by quarter(date_joined)
            ) as temp
            order by date_joined;

Jak uzyskać łączną liczbę użytkowników rocznie w MySQL

Oto zapytanie SQL, aby uzyskać łączną liczbę użytkowników w MySQL według roku. W zapytaniu SQL, aby uzyskać łączną liczbę użytkowników dziennie, wystarczy zmienić funkcję agregacji w podzapytaniu z date(date_joined) do roku (format_daty) .

mysql> set @csum := 0;
mysql> select date_joined,new_users, (@csum := @csum + new_users) as total_users
            from (
             select year(date_joined) as date_joined,
               count(user_id) as new_users
             from users
             group by year(date_joined)
            ) as temp
            order by date_joined;

Otóż ​​to! Możesz wypróbować powyższe zapytania SQL, aby uzyskać łączną liczbę użytkowników dziennie w MySQL. Jeśli chcesz tworzyć wykresy, dashboardy i raporty z bazy danych MySQL, możesz wypróbować Ubiq. Oferujemy 14-dniowy bezpłatny okres próbny.

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Używanie ScrollableResults Hibernate do powolnego odczytu 90 milionów rekordów

  2. SQL:wybieranie wierszy, w których wartość kolumny zmieniła się z poprzedniego wiersza

  3. Używanie indeksu, używanie tymczasowe, używanie sortowania plików - jak to naprawić?

  4. Jak naprawić błąd połączenia z bazą danych MySQL JDBC 08001?

  5. Jak stworzyć bezpieczną przygotowaną instrukcję mysql w php?