เจ เจธเฉเจ Grafana เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจชเฉเจฐเฉเจฎเฉเจชเจฒเจ เจธเฉเจตเจพ เจตเจฟเฉฑเจ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจเจฒเจชเจจเจพ เจเจฐเจจ เจฆเฉ เจธเจฎเฉฑเจธเจฟเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจนเฉฑเจฒ เจเฉเจคเจพเฅค
เจเจฟเจธเฉ เจจเฉ เจธเจพเจเจจ เจ
เฉฑเจช เจเฉเจคเจพ เจ
เจคเฉ เจนเจฎเฉเจธเจผเจพ เจฒเจ "เจธเฉเจ เจเจฟเจ"เฅค เจเฉเจ เจตเจฟเจ
เจเจคเฉ เจเจชเจฃเจพ เจชเจพเจธเจตเจฐเจก เจญเฉเฉฑเจฒ เจเจฟเจ เจ
เจคเฉ เจเฉ เจฎเจนเฉเจจเจฟเจเจ เจฆเฉ เจฆเฉเจฐเจพเจจ เจฆเฉ เจตเจพเจฐ เจฐเจเจฟเจธเจเจฐ เจเฉเจคเจพเฅค เจเฉเจ เจเฉเจธเจผ เจฐเจเจฟเจธเจเจฐ เจตเจฟเฉฑเจ เจชเฉเจธเฉ เจฒเจฟเจเจเจเจฆเจพ เจนเฉ, เจ
เจคเฉ เจเฉเจ เจฎเฉเจซเจค เจตเจฟเฉฑเจ เจเจเจ เจธเฉ
เจธเจพเจกเฉ เจตเจฐเจเฉ เจตเฉฑเจกเฉ เจกเฉเจเจพ เจธเฉเฉฑเจเจพเจ 'เจคเฉ, เจตเจฟเจ เจเจคเฉเจเจค เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจตเจฟเจตเจนเจพเจฐ เจฆเจพ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจฐเจจเจพ เจ เจคเฉ เจธเฉเจเจฎ-เจซเฉเจธเจฒเฉ เจฒเฉเจฃเจพ เจฌเฉเจเจพเจฐ เจนเฉเฅค เจชเจฐ เจฐเฉเจเจพเจจ เจจเฉเฉฐ เจซเฉเจจเจพ เจ เจคเฉ เจตเฉฑเจกเฉ เจธเจฎเฉเจนเจพเจ เจจเจพเจฒ เจเฉฐเจฎ เจเจฐเจจเจพ เจธเฉฐเจญเจต เจ เจคเฉ เจเจผเจฐเฉเจฐเฉ เจนเฉเฅค เจเฉ เจฌเจฟเจฒเจเฉเจฒ เจ เจธเฉเจ เจเจฐเจฆเฉ เจนเจพเจเฅค
เจธเฉฐเจเฉเจช
- เจธเจฎเฉเจน เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉ เจนเฉ เจ เจคเฉ เจเจธเจฆเฉ เจฒเฉเฉ เจเจฟเจเจ เจนเฉ?
- SQL เจตเจฟเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฆเฉ เจฎเจนเฉเจจเฉ เจฆเฉเจเจฐเจพ เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจ เจเจพเจตเฉเฅค
- เจธเจฎเฉเจนเจพเจ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจเฉเจฐเจพเจเจธเจซเจฐ เจเจฐเจจเจพ เจนเฉ
เจเฉเจฐเจพเจซเจจเจพ .
เจเฉเจเจฐ เจคเฉเจธเฉเจ เจชเจนเจฟเจฒเจพเจ เจนเฉ เจเจพเจฃเจฆเฉ เจนเฉ เจเจฟ เจธเจฎเฉเจน เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉ เจนเฉ เจ เจคเฉ เจเจธเจจเฉเฉฐ SQL เจตเจฟเฉฑเจ เจเจฟเจตเฉเจ เจเจฐเจจเจพ เจนเฉ, เจคเจพเจ เจธเจฟเฉฑเจงเฉ เจเจเจฐเฉ เจญเจพเจ 'เจคเฉ เจเจพเจเฅค
1. เจธเจฎเฉเจน เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉ เจนเฉ เจ เจคเฉ เจเจธเจฆเฉ เจฒเฉเฉ เจเจฟเจเจ เจนเฉ?
เจเฉเจนเฉเจฐเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเจชเจญเฉเจเจคเจพเจตเจพเจ เจฆเฉ เจตเฉฑเจ-เจตเฉฑเจ เจธเจฎเฉเจนเจพเจ (เจธเจนเจฟเจฏเฉเจเฉเจเจ) เจฆเฉ เจคเฉเจฒเจจเจพ เจเจฐเจจ 'เจคเฉ เจ เจงเจพเจฐเจค เจเฉฑเจ เจคเจฐเฉเจเจพ เจนเฉเฅค เจ เจเจธเจฐ, เจธเจพเจกเฉ เจธเจฎเฉเจน เจเจธ เจนเจซเจผเจคเฉ เจเจพเจ เจฎเจนเฉเจจเฉ เจฆเฉเจเจฐเจพ เจฌเจฃเจพเจ เจเจพเจเจฆเฉ เจนเจจ เจเจฟเจธ เจตเจฟเฉฑเจ เจเจชเจญเฉเจเจคเจพ เจจเฉ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจเฉ เจธเจผเฉเจฐเฉ เจเฉเจคเฉ เจธเฉเฅค เจเฉฑเจฅเฉเจ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเฉเจตเจจ เจเจพเจฒ เจฆเฉ เจเจฃเจจเจพ เจเฉเจคเฉ เจเจพเจเจฆเฉ เจนเฉ, เจ เจคเฉ เจเจน เจเฉฑเจ เจธเฉเจเจ เจนเฉ เจเจฟเจธเจฆเฉ เจ เจงเจพเจฐ 'เจคเฉ เจเฉฑเจ เจเฉเฉฐเจเจฒเจฆเจพเจฐ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจเฉเจคเจพ เจเจพ เจธเจเจฆเจพ เจนเฉเฅค เจเจฆเจพเจนเจฐเจจ เจฒเจ, เจธเจฎเจเฉ:
- เจชเฉเจฐเจพเจชเจคเฉ เจเฉเจจเจฒ เจเจชเจญเฉเจเจคเจพ เจฆเฉ เจเฉเจตเจจ เจเจพเจฒ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเจพ เจนเฉ;
- เจเจฟเจธเฉ เจตเจฟเจธเจผเฉเจธเจผเจคเจพ เจเจพเจ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเฉเจตเจจ เจญเจฐ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเจฐเจฆเฉ เจนเฉ;
- เจซเฉเจเจฐ X เจฆเฉ เจธเจผเฉเจฐเฉเจเจค เจจเฉ เจชเจฟเจเจฒเฉ เจธเจพเจฒ เจฆเฉ เจฎเฉเจเจพเจฌเจฒเฉ เจเฉเจตเจจ เจเจพเจฒ เจจเฉเฉฐ เจเจฟเจตเฉเจ เจชเฉเจฐเจญเจพเจตเจฟเจค เจเฉเจคเจพเฅค
2. SQL เจตเจฟเฉฑเจ เจเฉเจนเฉเจฐเจ เจเจฟเจตเฉเจ เจฌเจฃเจพเจเจ เจเจพเจตเฉ?
เจฒเฉเจ เจฆเจพ เจเจเจพเจฐ เจ เจคเฉ เจเจฎ เจธเจฎเจ เจธเจพเจจเฉเฉฐ เจเฉฑเจฅเฉ เจธเจพเจกเฉ เจ เจธเจฒ เจกเฉเจเจพ เจจเฉเฉฐ เจชเฉเจธเจผ เจเจฐเจจ เจฆเฉ เจเจเจพเจเจผเจค เจจเจนเฉเจ เจฆเจฟเฉฐเจฆเฉ - เจเฉเจธเจ เจกเฉฐเจช เจตเจฟเฉฑเจ, เจกเฉเจข เจธเจพเจฒ เจฆเฉ เจ เฉฐเจเฉเฉ: 1200 เจเจชเจญเฉเจเจคเจพ เจ เจคเฉ 53 เจเฉเจฐเจพเจเจเฉเจเจธเจผเจจเจพเจ. เจคเจพเจ เจเฉ เจคเฉเจธเฉเจ เจเจธ เจกเฉเจเจพ เจจเจพเจฒ เจเฉเจก เจธเจเฉ, เจ เจธเฉเจ MySQL เจ เจคเฉ Grafana เจฆเฉ เจจเจพเจฒ เจเฉฑเจ เจกเฉเจเจฐ เจเจฟเฉฑเจคเจฐ เจคเจฟเจเจฐ เจเฉเจคเจพ เจนเฉ เจเจฟเจธ เจตเจฟเฉฑเจ เจคเฉเจธเฉเจ เจเจน เจธเจญ เจเจชเจฃเฉ เจเจช เจ เจจเฉเจญเจต เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค เจฒเฉเจ เจฆเฉ เจ เฉฐเจค เจตเจฟเฉฑเจ GitHub เจจเจพเจฒ เจฒเจฟเฉฐเจ เจเจฐเฉ.
เจ เจคเฉ เจเฉฑเจฅเฉ เจ เจธเฉเจ เจเฉฑเจ เจธเจฐเจฒ เจเจฆเจพเจนเจฐเจฃ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจฆเฉ เจนเฉเจ เจธเจฎเฉเจนเจพเจ เจฆเฉ เจฐเจเจจเจพ เจจเฉเฉฐ เจฆเจฟเจเจพเจตเจพเจเจเฉเฅค
เจเจฒเฉ เจฎเฉฐเจจ เจฒเจ เจธเจพเจกเฉ เจเฉเจฒ เจเฉฑเจ เจธเฉเจตเจพ เจนเฉเฅค เจเจชเจญเฉเจเจคเจพ เจเฉฑเจฅเฉ เจฐเจเจฟเจธเจเจฐ เจเจฐเจฆเฉ เจนเจจ เจ เจคเฉ เจธเฉเจตเจพเจตเจพเจ 'เจคเฉ เจชเฉเจธเจพ เจเจฐเจ เจเจฐเจฆเฉ เจนเจจเฅค เจธเจฎเฉเจ เจฆเฉ เจจเจพเจฒ, เจเจชเจญเฉเจเจคเจพ เจเฉฑเจก เจฆเจฟเฉฐเจฆเฉ เจนเจจ. เจ เจธเฉเจ เจเจน เจชเจคเจพ เจฒเจเจพเจเจฃเจพ เจเจพเจนเฉเฉฐเจฆเฉ เจนเจพเจ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจเจฟเฉฐเจจเฉ เจฆเฉเจฐ เจคเฉฑเจ เจเฉเจเจเจฆเฉ เจนเจจ, เจ เจคเฉ เจเจนเจจเจพเจ เจตเจฟเฉฑเจเฉเจ เจเจฟเฉฐเจจเฉ เจธเฉเจตเจพ เจฆเฉ เจตเจฐเจคเฉเจ เจเจฐเจจ เจฆเฉ เจชเจนเจฟเจฒเฉ เจ เจคเฉ เจฆเฉเจเฉ เจฎเจนเฉเจจเฉ เจคเฉเจ เจฌเจพเจ เจฆ เจฌเฉฐเจฆ เจนเฉ เจเจพเจเจฆเฉ เจนเจจเฅค
เจเจนเจจเจพเจ เจธเจตเจพเจฒเจพเจ เจฆเฉ เจเจตเจพเจฌ เจฆเฉเจฃ เจฒเจ, เจธเจพเจจเฉเฉฐ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฆเฉ เจฎเจนเฉเจจเฉ เจฆเฉ เจเจงเจพเจฐ 'เจคเฉ เจธเจฎเฉเจน เจฌเจฃเจพเจเจฃ เจฆเฉ เจฒเฉเฉ เจนเฉเฅค เจ เจธเฉเจ เจนเจฐ เจฎเจนเฉเจจเฉ เจเจฐเจเจฟเจเจ เจฆเฉเจเจฐเจพ เจเจคเฉเจตเจฟเจงเฉ เจจเฉเฉฐ เจฎเจพเจชเจพเจเจเฉเฅค เจเจฐเจเจฟเจเจ เจฆเฉ เจฌเจเจพเจ, เจเจฐเจกเจฐ, เจเจพเจนเจเฉ เจซเฉเจธ, เจเจพเจ เจเฉเจ เจนเฉเจฐ เจธเจฎเจพเจ-เจ เจงเจพเจฐเจฟเจค เจเจคเฉเจตเจฟเจงเฉ เจนเฉ เจธเจเจฆเฉ เจนเฉเฅค
เจธเจผเฉเจฐเฉเจเจคเฉ เจกเฉเจเจพ
เจเจฆเจพเจนเจฐเจฃเจพเจ เจจเฉเฉฐ MySQL เจตเจฟเฉฑเจ เจฌเจฃเจพเจเจ เจเจฟเจ เจธเฉ, เจชเจฐ เจฆเฉเจเฉ DBMS เจฒเจ เจเฉเจ เจฎเจนเฉฑเจคเจตเจชเฉเจฐเจจ เจ เฉฐเจคเจฐ เจจเจนเฉเจ เจนเฉเจฃเจพ เจเจพเจนเฉเจฆเจพ เจนเฉเฅค
เจเจชเจญเฉเจเจคเจพ เจธเจพเจฐเจฃเฉ - เจเจชเจญเฉเจเจคเจพ:
เจฏเฉเจเจฐ เจเจเจกเฉ
เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฆเฉ เจฎเจฟเจคเฉ
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')
เจนเฉเจฃ เจธเจพเจจเฉเฉฐ เจเจน เจเจพเจฃเจจ เจฆเฉ เจเจผเจฐเฉเจฐเจค เจนเฉ เจเจฟ เจเจชเจญเฉเจเจคเจพ เจเจฟเฉฐเจจเฉ เจฎเจนเฉเจจเฉ เจธเจฐเจเจฐเจฎ เจธเฉ - เจเจน เจกเฉเจฌเจฟเจ เจฆเฉ เจฎเจนเฉเจจเฉ เจ เจคเฉ เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฆเฉ เจฎเจนเฉเจจเฉ เจตเจฟเฉฑเจ เจ เฉฐเจคเจฐ เจนเฉเฅค MySQL เจฆเจพ เจเฉฑเจ เจซเฉฐเจเจธเจผเจจ PERIOD_DIFF() เจนเฉ - เจฆเฉ เจฎเจนเฉเจจเจฟเจเจ เจตเจฟเฉฑเจ เจ เฉฐเจคเจฐเฅค เจฌเฉเจจเจคเฉ เจตเจฟเฉฑเจ PERIOD_DIFF() เจธเจผเจพเจฎเจฒ เจเจฐเฉ:
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
เจฏเฉเจเจฐ เจเจเจกเฉ
เจฌเจฟเจฒเจฟเฉฐเจ เจฎเจนเฉเจจเจพ
เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฆเฉ เจฎเจฟเจคเฉ
MonthsDiff
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
เจจเจคเฉเจเจพ:
เจเจชเจญเฉเจเจคเจพ เจเจฟเจฃเจคเฉ
เจฌเจฟเจฒเจฟเฉฐเจ เจฎเจนเฉเจจเจพ
เจฐเจเจฟเจธเจเฉเจฐเฉเจธเจผเจจ เจฎเจนเฉเจจเจพ
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
เจเจจเจตเจฐเฉ, เจซเจฐเจตเจฐเฉ เจ เจคเฉ เจฎเจพเจฐเจ เจตเจฟเฉฑเจ, เจเฉฑเจ เจจเจตเจพเจ เจเจชเจญเฉเจเจคเจพ เจชเฉเจฐเจเจ เจนเฉเจเจ - MonthsDiff = 0เฅค เจเฉฑเจ เจเจจเจตเจฐเฉ เจเจชเจญเฉเจเจคเจพ เจซเจฐเจตเจฐเฉ เจตเจฟเฉฑเจ เจธเจฐเจเจฐเจฎ เจธเฉ - RegistrationMonth = 2019-01, BillingMonth = 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
เจ เจคเฉ เจเฉเจฐเจพเจซเจพเจจเจพ 'เจคเฉ เจกเฉเจเจพ เจ เจชเจฒเฉเจก เจเจฐเฉเฅค
เจคเฉเจ เจเจฆเจพเจนเจฐเจจ เจเฉเจฐเจพเจซ
เจเจชเจฃเฉ เจนเฉฑเจฅเจพเจ เจจเจพเจฒ เจเฉเจนเฉ:
เจเฉ เจคเฉเจธเฉเจ เจเจพเจนเฉ, เจคเจพเจ เจคเฉเจธเฉเจ เจเจธ เจเจฟเฉฑเจคเจฐ เจตเจฟเฉฑเจ เจเจชเจฃเจพ เจกเฉเจเจพ เจฒเฉเจก เจเจฐ เจธเจเจฆเฉ เจนเฉเฅค
SQL เจตเจฟเฉฑเจ เจเฉเจนเฉเจฐเจ เจตเจฟเจธเจผเจฒเฉเจธเจผเจฃ เจฌเจพเจฐเฉ PS เจฒเฉเจ:
เจธเจฐเฉเจค: www.habr.com