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.