Како ΠΏΡ€ΠΈΠΊΡƒΠΏΠΈΡ‚ΠΈ корисничкС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ ΠΊΠ°ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π΅ Ρƒ Π“Ρ€Π°Ρ„Π°Π½ΠΈ [+ Π΄ΠΎΡ†ΠΊΠ΅Ρ€ слика са ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ]

Како ΠΏΡ€ΠΈΠΊΡƒΠΏΠΈΡ‚ΠΈ корисничкС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ ΠΊΠ°ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π΅ Ρƒ Π“Ρ€Π°Ρ„Π°Π½ΠΈ [+ Π΄ΠΎΡ†ΠΊΠ΅Ρ€ слика са ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ]

Како смо Ρ€Π΅ΡˆΠΈΠ»ΠΈ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌ Π²ΠΈΠ·ΡƒΠ΅Π»ΠΈΠ·Π°Ρ†ΠΈΡ˜Π΅ ΠΊΠΎΡ…ΠΎΡ€Ρ‚ΠΈ корисника Ρƒ ΠŸΡ€ΠΎΠΌΠΎΠΏΡƒΠ»Ρ‚ сСрвису користСћи Π“Ρ€Π°Ρ„Π°Π½Ρƒ.

промовисати - ΠΌΠΎΡ›Π°Π½ сСрвис са Π²Π΅Π»ΠΈΠΊΠΈΠΌ Π±Ρ€ΠΎΡ˜Π΅ΠΌ корисника. Π—Π° 10 Π³ΠΎΠ΄ΠΈΠ½Π° Ρ€Π°Π΄Π°, Π±Ρ€ΠΎΡ˜ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π° Ρƒ систСму јС ΠΏΡ€Π΅ΠΌΠ°ΡˆΠΈΠΎ ΠΌΠΈΠ»ΠΈΠΎΠ½. Они који су сС сусрСли са сличним услугама Π·Π½Π°Ρ˜Ρƒ Π΄Π° јС овај Π½ΠΈΠ· корисника Π΄Π°Π»Π΅ΠΊΠΎ ΠΎΠ΄ Ρ…ΠΎΠΌΠΎΠ³Π΅Π½ΠΎΠ³.

НСко сС ΠΏΡ€ΠΈΡ˜Π°Π²ΠΈΠΎ ΠΈ β€žΠ·Π°ΡΠΏΠ°ΠΎβ€œ Π·Π°ΡƒΠ²Π΅ΠΊ. НСко јС Π·Π°Π±ΠΎΡ€Π°Π²ΠΈΠΎ Π»ΠΎΠ·ΠΈΠ½ΠΊΡƒ ΠΈ рСгистровао сС још Π½Π΅ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΏΡƒΡ‚Π° Ρ‚ΠΎΠΊΠΎΠΌ ΡˆΠ΅ΡΡ‚ мСсСци. НСко доноси Π½ΠΎΠ²Π°Ρ† Ρƒ касу, Π° Π½Π΅ΠΊΠΎ јС дошао ΠΏΠΎ гратис инструмСнти. И Π±ΠΈΠ»ΠΎ Π±ΠΈ Π»Π΅ΠΏΠΎ Π΄Π° сС ΠΎΠ΄ свих добијС Π½Π΅ΠΊΠΈ ΠΏΡ€ΠΎΡ„ΠΈΡ‚.

На ΠΎΠ²Π°ΠΊΠΎ Π²Π΅Π»ΠΈΠΊΠΈΠΌ скуповима ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° ΠΊΠ°ΠΎ ΡˆΡ‚ΠΎ јС наш, Π°Π½Π°Π»ΠΈΠ·Π° понашања ΠΏΠΎΡ˜Π΅Π΄ΠΈΠ½Π°Ρ‡Π½ΠΎΠ³ корисника ΠΈ доношСњС ΠΌΠΈΠΊΡ€ΠΎ ΠΎΠ΄Π»ΡƒΠΊΠ° јС бСсмислСно. Али ΡƒΠΎΡ‡Π°Π²Π°ΡšΠ΅ Ρ‚Ρ€Π΅Π½Π΄ΠΎΠ²Π° ΠΈ Ρ€Π°Π΄ са Π²Π΅Π»ΠΈΠΊΠΈΠΌ Π³Ρ€ΡƒΠΏΠ°ΠΌΠ° јС ΠΌΠΎΠ³ΡƒΡ›Π΅ ΠΈ Π½Π΅ΠΎΠΏΡ…ΠΎΠ΄Π½ΠΎ. Π¨Ρ‚ΠΎ јС ΡƒΠΏΡ€Π°Π²ΠΎ ΠΎΠ½ΠΎ ΡˆΡ‚ΠΎ ΠΌΠΈ Ρ€Π°Π΄ΠΈΠΌΠΎ.

Π‘Π°ΠΆΠ΅Ρ‚Π°ΠΊ

  1. Π¨Ρ‚Π° јС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π·Π°ΡˆΡ‚ΠΎ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°?
  2. Како Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΠΈ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ ΠΏΠΎ мСсСцима Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅ корисника Ρƒ Π‘ΠšΠ›-Ρƒ.
  3. Како ΠΏΡ€Π΅Π½Π΅Ρ‚ΠΈ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ Π½Π° Π“Ρ€Π°Ρ„Π°Π½Π°.

Ако Π²Π΅Ρ› Π·Π½Π°Ρ‚Π΅ ΡˆΡ‚Π° јС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ ΠΊΠ°ΠΊΠΎ Ρ‚ΠΎ Π΄Π° ΡƒΡ€Π°Π΄ΠΈΡ‚Π΅ Ρƒ Π‘ΠšΠ›-Ρƒ, ΠΏΡ€Π΅Ρ’ΠΈΡ‚Π΅ ΠΏΡ€Π°Π²ΠΎ Π½Π° послСдњи ΠΎΠ΄Π΅Ρ™Π°ΠΊ.

1. Π¨Ρ‚Π° јС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° ΠΈ Π·Π°ΡˆΡ‚ΠΎ јС ΠΏΠΎΡ‚Ρ€Π΅Π±Π½Π°?

ΠšΠΎΡ…ΠΎΡ€Ρ‚Π½Π° Π°Π½Π°Π»ΠΈΠ·Π° јС ΠΌΠ΅Ρ‚ΠΎΠ΄Π° заснована Π½Π° ΠΏΠΎΡ€Π΅Ρ’Π΅ΡšΡƒ Ρ€Π°Π·Π»ΠΈΡ‡ΠΈΡ‚ΠΈΡ… Π³Ρ€ΡƒΠΏΠ° (ΠΊΠΎΡ…ΠΎΡ€Ρ‚ΠΈ) корисника. ΠΠ°Ρ˜Ρ‡Π΅ΡˆΡ›Π΅ сС нашС Π³Ρ€ΡƒΠΏΠ΅ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Ρ˜Ρƒ ΠΏΠΎ сСдмици ΠΈΠ»ΠΈ мСсСцу Ρƒ којСм јС корисник ΠΏΠΎΡ‡Π΅ΠΎ Π΄Π° користи услугу. ОдавдС сС ΠΈΠ·Ρ€Π°Ρ‡ΡƒΠ½Π°Π²Π° ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈ Π²Π΅ΠΊ корисника, Π° Ρ‚ΠΎ јС ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Ρ™ Π½Π° основу којСг сС ΠΌΠΎΠΆΠ΅ ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚ΠΈ ΠΏΡ€ΠΈΠ»ΠΈΡ‡Π½ΠΎ слоТСна Π°Π½Π°Π»ΠΈΠ·Π°. На ΠΏΡ€ΠΈΠΌΠ΅Ρ€, схватитС:

  • ΠΊΠ°ΠΊΠΎ ΠΊΠ°Π½Π°Π» Π°ΠΊΠ²ΠΈΠ·ΠΈΡ†ΠΈΡ˜Π΅ ΡƒΡ‚ΠΈΡ‡Π΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈ Π²Π΅ΠΊ корисника;
  • ΠΊΠ°ΠΊΠΎ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° Π±ΠΈΠ»ΠΎ којС Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ ΠΈΠ»ΠΈ услугС ΡƒΡ‚ΠΈΡ‡Π΅ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈ Π²Π΅ΠΊ;
  • Како јС Π»Π°Π½ΡΠΈΡ€Π°ΡšΠ΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Π΅ Кс ΡƒΡ‚ΠΈΡ†Π°Π»ΠΎ Π½Π° ΠΆΠΈΠ²ΠΎΡ‚Π½ΠΈ Π²Π΅ΠΊ Ρƒ ΠΏΠΎΡ€Π΅Ρ’Π΅ΡšΡƒ са ΠΏΡ€ΠΎΡˆΠ»ΠΎΠΌ Π³ΠΎΠ΄ΠΈΠ½ΠΎΠΌ.

2. Како Π½Π°ΠΏΡ€Π°Π²ΠΈΡ‚ΠΈ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ Ρƒ Π‘ΠšΠ›-Ρƒ?

Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Π° Ρ‡Π»Π°Π½ΠΊΠ° ΠΈ Π·Π΄Ρ€Π°Π² Ρ€Π°Π·ΡƒΠΌ Π½Π°ΠΌ Π½Π΅ Π΄ΠΎΠ·Π²ΠΎΡ™Π°Π²Π°Ρ˜Ρƒ Π΄Π° ΠΎΠ²Π΄Π΅ изнСсСмо нашС стварнС ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ – Ρƒ тСстном Π΄Π΅ΠΏΠΎΠ½ΠΈΡ˜Ρƒ, статистика Π·Π° Π³ΠΎΠ΄ΠΈΠ½Ρƒ ΠΈ ΠΏΠΎ Π΄Π°Π½Π°: 1200 корисника ΠΈ 53 Ρ‚Ρ€Π°Π½ΡΠ°ΠΊΡ†ΠΈΡ˜Π°. Π”Π° бистС ΠΌΠΎΠ³Π»ΠΈ Π΄Π° сС ΠΈΠ³Ρ€Π°Ρ‚Π΅ са ΠΎΠ²ΠΈΠΌ ΠΏΠΎΠ΄Π°Ρ†ΠΈΠΌΠ°, ΠΏΡ€ΠΈΠΏΡ€Π΅ΠΌΠΈΠ»ΠΈ смо Π΄ΠΎΡ†ΠΊΠ΅Ρ€ слику са ΠœΠΈΠ‘ΠšΠ› ΠΈ Π“Ρ€Π°Ρ„Π°Π½ΠΎΠΌ Ρƒ којој свС Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΈ сами Π΄Π° Π΄ΠΎΠΆΠΈΠ²ΠΈΡ‚Π΅. Π’Π΅Π·Π° Π΄ΠΎ Π“ΠΈΡ‚Π₯ΡƒΠ±-Π° Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ Ρ‡Π»Π°Π½ΠΊΠ°.

А ΠΎΠ²Π΄Π΅ Ρ›Π΅ΠΌΠΎ ΠΏΠΎΠΊΠ°Π·Π°Ρ‚ΠΈ ΡΡ‚Π²Π°Ρ€Π°ΡšΠ΅ ΠΊΠΎΡ…ΠΎΡ€Ρ‚ΠΈ Π½Π° ΠΏΠΎΡ˜Π΅Π΄Π½ΠΎΡΡ‚Π°Π²Ρ™Π΅Π½ΠΎΠΌ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρƒ.

ΠŸΡ€Π΅Ρ‚ΠΏΠΎΡΡ‚Π°Π²ΠΈΠΌΠΎ Π΄Π° ΠΈΠΌΠ°ΠΌΠΎ услугу. ΠšΠΎΡ€ΠΈΡΠ½ΠΈΡ†ΠΈ сС Ρ‚Π°ΠΌΠΎ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€ΡƒΡ˜Ρƒ ΠΈ Ρ‚Ρ€ΠΎΡˆΠ΅ Π½ΠΎΠ²Π°Ρ† Π½Π° услугС. Π’Ρ€Π΅ΠΌΠ΅Π½ΠΎΠΌ корисници ΠΎΠ΄ΡƒΡΡ‚Π°Ρ˜Ρƒ. Π–Π΅Π»ΠΈΠΌΠΎ Π΄Π° сазнамо ΠΊΠΎΠ»ΠΈΠΊΠΎ Π΄ΡƒΠ³ΠΎ корисници ΠΆΠΈΠ²Π΅, Π° ΠΊΠΎΠ»ΠΈΠΊΠΎ ΠΈΡ… ΠΎΠΏΠ°Π΄Π° Π½Π°ΠΊΠΎΠ½ 1. ΠΈ 2. мСсСца ΠΊΠΎΡ€ΠΈΡˆΡ›Π΅ΡšΠ° услугС.

Π”Π° бисмо ΠΎΠ΄Π³ΠΎΠ²ΠΎΡ€ΠΈΠ»ΠΈ Π½Π° ΠΎΠ²Π° ΠΏΠΈΡ‚Π°ΡšΠ°, ΠΌΠΎΡ€Π°ΠΌΠΎ Π΄Π° ΠΊΠΎΠ½ΡΡ‚Ρ€ΡƒΠΈΡˆΠ΅ΠΌΠΎ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ Π½Π° основу мСсСца Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅. ΠœΠ΅Ρ€ΠΈΡ›Π΅ΠΌΠΎ активност ΠΏΠΎ Ρ‚Ρ€ΠΎΡˆΠΊΠΎΠ²ΠΈΠΌΠ° сваког мСсСца. УмСсто Ρ‚Ρ€ΠΎΡˆΠΊΠΎΠ²Π°, ΠΌΠΎΠ³Ρƒ Π±ΠΈΡ‚ΠΈ Π½Π°Ρ€ΡƒΡŸΠ±ΠΈΠ½Π΅, ΠΏΡ€Π΅Ρ‚ΠΏΠ»Π°Ρ‚Π΅ ΠΈΠ»ΠΈ Π±ΠΈΠ»ΠΎ која Π΄Ρ€ΡƒΠ³Π° активност заснована Π½Π° Π²Ρ€Π΅ΠΌΠ΅Π½Ρƒ.

НСобрађСни ΠΏΠΎΠ΄Π°Ρ†ΠΈ

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ΠΈ су Π½Π°ΠΏΡ€Π°Π²Ρ™Π΅Π½ΠΈ Ρƒ ΠœΠΈΠ‘ΠšΠ›-Ρƒ, Π°Π»ΠΈ Π·Π° Π΄Ρ€ΡƒΠ³Π΅ Π”Π‘ΠœΠ‘ Π½Π΅ Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° ΠΏΠΎΡΡ‚ΠΎΡ˜Π΅ Π·Π½Π°Ρ‡Π°Ρ˜Π½Π΅ Ρ€Π°Π·Π»ΠΈΠΊΠ΅.

Π’Π°Π±Π΅Π»Π° корисника - корисници:

Π˜Π” корисник
Π”Π°Ρ‚ΡƒΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅

1
2019-01-01

2
2019-02-01

3
2019-02-10

4
2019-03-01

Π’Π°Π±Π΅Π»Π° Ρ‚Ρ€ΠΎΡˆΠΊΠΎΠ²Π° - ΠΎΠ±Ρ€Π°Ρ‡ΡƒΠ½:

Π˜Π” корисник
Π΄Π°Ρ‚ΡƒΠΌ
Π‘ΡƒΠΌΠ°

1
2019-01-02
11

1
2019-02-22
11

2
2019-02-12
12

3
2019-02-11
13

3
2019-03-11
13

4
2019-03-01
14

4
2019-03-02
14

Π˜Π·Π°Π±Π΅Ρ€ΠΈΡ‚Π΅ свС корисничкС отписС ΠΈ Π΄Π°Ρ‚ΡƒΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅:

SELECT 
  b.userId, 
  b.Date,
  u.RegistrationDate
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚:

Π˜Π” корисник
Π΄Π°Ρ‚ΡƒΠΌ
Π”Π°Ρ‚ΡƒΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅

1
2019-01-02
2019-01-02

1
2019-02-22
2019-01-02

2
2019-02-12
2019-02-01

3
2019-02-11
2019-02-10

3
2019-03-11
2019-02-10

4
2019-03-01
2019-03-01

4
2019-03-02
2019-03-01

Π“Ρ€Π°Π΄ΠΈΠΌΠΎ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ ΠΏΠΎ мСсСцима; Π΄Π° бисмо Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, ΠΏΡ€Π΅Ρ‚Π²Π°Ρ€Π°ΠΌΠΎ свС Π΄Π°Ρ‚ΡƒΠΌΠ΅ Ρƒ мСсСцС:

DATE_FORMAT(Date, '%Y-%m')

Π‘Π°Π΄Π° Ρ‚Ρ€Π΅Π±Π° Π΄Π° Π·Π½Π°ΠΌΠΎ ΠΊΠΎΠ»ΠΈΠΊΠΎ мСсСци јС корисник Π±ΠΈΠΎ Π°ΠΊΡ‚ΠΈΠ²Π°Π½ - ΠΎΠ²ΠΎ јС Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ мСсСца Π·Π°Π΄ΡƒΠΆΠ΅ΡšΠ° ΠΈ мСсСца Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅. ΠœΠΈΠ‘ΠšΠ› ΠΈΠΌΠ° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΡ˜Ρƒ ΠŸΠ•Π Π˜ΠžΠ”_Π”Π˜Π€Π€() - Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΈΠ·ΠΌΠ΅Ρ’Ρƒ Π΄Π²Π° мСсСца. Π”ΠΎΠ΄Π°Ρ˜Ρ‚Π΅ ΠŸΠ•Π Π˜ΠžΠ”_Π”Π˜Π€Π€() Π·Π°Ρ…Ρ‚Π΅Π²Ρƒ:

SELECT
    b.userId,
    DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
    DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
    PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId

Π˜Π” корисник
Π‘ΠΈΠ»Π»ΠΈΠ½Π³ΠœΠΎΠ½Ρ‚Ρ…
Π”Π°Ρ‚ΡƒΠΌ Ρ€Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Π΅
ΠœΠΎΠ½Ρ‚Ρ…ΡΠ”ΠΈΡ„Ρ„

1
2019-01
2019-01
0

1
2019-02
2019-01
1

2
2019-02
2019-02
0

3
2019-02
2019-02
0

3
2019-03
2019-02
1

4
2019-03
2019-03
0

4
2019-03
2019-03
0

Π‘Ρ€ΠΎΡ˜ΠΈΠΌΠΎ корисникС Π°ΠΊΡ‚ΠΈΠ²ΠΈΡ€Π°Π½Π΅ Ρƒ сваком мСсСцу - Π³Ρ€ΡƒΠΏΠΈΡˆΠ΅ΠΌΠΎ записС ΠΏΡ€Π΅ΠΌΠ° Π‘ΠΈΠ»Π»ΠΈΠ½Π³ΠœΠΎΠ½Ρ‚Ρ…, Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΈΠΎΠ½ΠœΠΎΠ½Ρ‚Ρ… ΠΈ ΠœΠΎΠ½Ρ‚Ρ…ΡΠ”ΠΈΡ„Ρ„:

SELECT
    COUNT(DISTINCT(b.userId)) AS UsersCount,
    DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
    DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
    PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
GROUP BY BillingMonth, RegistrationMonth, MonthsDiff

Π Π΅Π·ΡƒΠ»Ρ‚Π°Ρ‚:

УсСрсЦоунт
Π‘ΠΈΠ»Π»ΠΈΠ½Π³ΠœΠΎΠ½Ρ‚Ρ…
Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΈΠΎΠ½ΠœΠΎΠ½Ρ‚Ρ…
ΠœΠΎΠ½Ρ‚Ρ…ΡΠ”ΠΈΡ„Ρ„

1
2019-01
2019-01
0

1
2019-02
2019-01
1

2
2019-02
2019-02
0

1
2019-03
2019-02
1

1
2019-03
2019-03
0

Π£ Ρ˜Π°Π½ΡƒΠ°Ρ€Ρƒ, Ρ„Π΅Π±Ρ€ΡƒΠ°Ρ€Ρƒ ΠΈ ΠΌΠ°Ρ€Ρ‚Ρƒ појавио сС ΠΏΠΎ јСдан Π½ΠΎΠ²ΠΈ корисник - ΠœΠΎΠ½Ρ‚Ρ…ΡΠ”ΠΈΡ„Ρ„ = 0. ЈСдан Ρ˜Π°Π½ΡƒΠ°Ρ€ΡΠΊΠΈ корисник јС Π±ΠΈΠΎ Π°ΠΊΡ‚ΠΈΠ²Π°Π½ Ρƒ Ρ„Π΅Π±Ρ€ΡƒΠ°Ρ€Ρƒ - Π Π΅Π³ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΈΠΎΠ½ΠœΠΎΠ½Ρ‚Ρ… = 2019-01, Π‘ΠΈΠ»Π»ΠΈΠ½Π³ΠœΠΎΠ½Ρ‚Ρ… = 2019-02, Π° јСдан фСбруарски корисник јС Π±ΠΈΠΎ Π°ΠΊΡ‚ΠΈΠ²Π°Π½ Ρƒ ΠΌΠ°Ρ€Ρ‚Ρƒ.

Наравно, обрасци су Π±ΠΎΡ™Π΅ Π²ΠΈΠ΄Ρ™ΠΈΠ²ΠΈ Ρƒ Π²Π΅Π»ΠΈΠΊΠΎΠΌ скупу ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ°.

Како ΠΏΡ€Π΅Π½Π΅Ρ‚ΠΈ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ Ρƒ Π“Ρ€Π°Ρ„Π°Π½Ρƒ

Научили смо ΠΊΠ°ΠΊΠΎ Π΄Π° Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°ΠΌΠΎ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅, Π°Π»ΠΈ ΠΊΠ°Π΄Π° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ записа, вишС ΠΈΡ… нијС Π»Π°ΠΊΠΎ Π°Π½Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ΠΈ. Записи сС ΠΌΠΎΠ³Ρƒ извСсти Ρƒ Π•ΠΊΡ†Π΅Π» ΠΈ Ρ„ΠΎΡ€ΠΌΠΈΡ€Π°Ρ‚ΠΈ Ρƒ ΠΏΡ€Π΅Π»Π΅ΠΏΠ΅ Ρ‚Π°Π±Π΅Π»Π΅, Π°Π»ΠΈ Ρ‚ΠΎ нијС наш ΠΌΠ΅Ρ‚ΠΎΠ΄!

ΠšΠΎΡ…ΠΎΡ€Ρ‚Π΅ сС ΠΌΠΎΠ³Ρƒ ΠΏΡ€ΠΈΠΊΠ°Π·Π°Ρ‚ΠΈ ΠΊΠ°ΠΎ ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½ΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½ Ρƒ Π“Ρ€Π°Ρ„Π°Π½Π°.

Π”Π° бисмо Ρ‚ΠΎ ΡƒΡ€Π°Π΄ΠΈΠ»ΠΈ, додајСмо још јСдан ΡƒΠΏΠΈΡ‚ Π·Π° ΠΏΡ€Π΅Ρ‚Π²Π°Ρ€Π°ΡšΠ΅ ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Ρƒ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ ΠΏΠΎΠ³ΠΎΠ΄Π°Π½ Π·Π° Π“Ρ€Π°Ρ„Π°Π½Ρƒ:

SELECT
  DATE_ADD(CONCAT(s.RegistrationMonth, '-01'), INTERVAL s.MonthsDiff MONTH) AS time_sec,
  SUM(s.Users) AS value,
  s.RegistrationMonth AS metric
FROM (
  ## старый запрос, Π²ΠΎΠ·Π²Ρ€Π°Ρ‰Π°ΡŽΡ‰ΠΈΠΉ ΠΊΠΎΠ³ΠΎΡ€Ρ‚Ρ‹
  SELECT 
    COUNT(DISTINCT(b.userId)) AS Users, 
    DATE_FORMAT(b.Date, '%Y-%m') AS BillingMonth,
    DATE_FORMAT(u.RegistrationDate, '%Y-%m') AS RegistrationMonth,
    PERIOD_DIFF(DATE_FORMAT(b.Date, '%Y%m'), DATE_FORMAT(u.RegistrationDate, '%Y%m')) AS MonthsDiff
  FROM billing AS b LEFT JOIN users AS u ON b.userId = u.userId
  WHERE
    u.RegistrationDate BETWEEN '2018-01-01' AND CURRENT_DATE
  GROUP BY 
    BillingMonth, RegistrationMonth, MonthsDiff 
) AS s
GROUP BY 
  time_sec, metric

И ΠΎΡ‚ΠΏΡ€Π΅ΠΌΠΈΡ‚Π΅ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ Ρƒ Π“Ρ€Π°Ρ„Π°Π½Ρƒ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π° ΠΈΠ· Π΄Π΅ΠΌΠΎ:

Како ΠΏΡ€ΠΈΠΊΡƒΠΏΠΈΡ‚ΠΈ корисничкС ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π΅ ΠΊΠ°ΠΎ Π³Ρ€Π°Ρ„ΠΈΠΊΠΎΠ½Π΅ Ρƒ Π“Ρ€Π°Ρ„Π°Π½ΠΈ [+ Π΄ΠΎΡ†ΠΊΠ΅Ρ€ слика са ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ]

Π”ΠΎΠ΄ΠΈΡ€Π½ΠΈΡ‚Π΅ Ρ€ΡƒΠΊΠ°ΠΌΠ°:

Π“ΠΈΡ‚Π₯ΡƒΠ± ΡΠΏΡ€Π΅ΠΌΠΈΡˆΡ‚Π΅ са ΠΏΡ€ΠΈΠΌΠ΅Ρ€ΠΎΠΌ јС Π΄ΠΎΡ†ΠΊΠ΅Ρ€ слика са ΠœΠΈΠ‘ΠšΠ› ΠΈ Π“Ρ€Π°Ρ„Π°Π½ΠΎΠΌ ΠΊΠΎΡ˜Ρƒ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ΠΈ Π½Π° свом Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€Ρƒ. Π‘Π°Π·Π° ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊΠ° Π²Π΅Ρ› садрТи Π΄Π΅ΠΌΠΎ ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ Π·Π° Π³ΠΎΠ΄ΠΈΠ½Ρƒ ΠΈ ΠΏΠΎ Π΄Π°Π½Π°, ΠΎΠ΄ Ρ˜Π°Π½ΡƒΠ°Ρ€Π° 2018. Π΄ΠΎ Ρ˜ΡƒΠ»Π° 2019. Π³ΠΎΠ΄ΠΈΠ½Π΅.

Ако ΠΆΠ΅Π»ΠΈΡ‚Π΅, ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΡƒΡ‡ΠΈΡ‚Π°Ρ‚ΠΈ својС ΠΏΠΎΠ΄Π°Ρ‚ΠΊΠ΅ Ρƒ ΠΎΠ²Ρƒ слику.

ПБ Π§Π»Π°Π½Ρ†ΠΈ ΠΎ ΠΊΠΎΡ…ΠΎΡ€Ρ‚Π½ΠΎΡ˜ Π°Π½Π°Π»ΠΈΠ·ΠΈ Ρƒ Π‘ΠšΠ›-Ρƒ:

https://chartio.com/resources/tutorials/performing-cohort-analysis-using-mysql/

https://www.holistics.io/blog/calculate-cohort-retention-analysis-with-sql/

Π˜Π·Π²ΠΎΡ€: Π²Π²Π².Ρ…Π°Π±Ρ€.Ρ†ΠΎΠΌ

Π”ΠΎΠ΄Π°Ρ˜ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€