-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkpi_calc.php
117 lines (90 loc) · 2.6 KB
/
kpi_calc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
<?php
/**
* Created by PhpStorm.
* User: galina.logofatu
* Date: 7/11/2018
* Time: 10:01 AM
*/
$conn = mysqli_connect('localhost', 'root', '', 'tv');
global $conn;
//$date_for_kpi = '';
//$last_date_dau = lastDate('kpi_dau');
$sql = "INSERT INTO `kpi_dau`
SELECT `date`,`tv_post_id`,count(DISTINCT`user_id`) AS `nb_users`
FROM `dau`
WHERE 1
GROUP BY `date`,`tv_post_id`
ON DUPLICATE KEY UPDATE
`nb_users` = values(`nb_users`)
";
if (mysqli_query($conn, $sql)) {
} else {
echo mysqli_error($conn);
}
$sql = "INSERT INTO `kpi_lau`
SELECT
d.`date`,
d.`tv_post_id`,
(SELECT
COUNT(DISTINCT `user_id`) AS nb_users
FROM
tv.dau
WHERE
`date` <= d.`date`
AND `tv_post_id` = d.`tv_post_id`) AS `nb_users`
FROM
`dau` d
GROUP BY d.`date` , d.`tv_post_id`
ON DUPLICATE KEY UPDATE
`nb_users` = (SELECT
COUNT(DISTINCT `user_id`) AS nb_users
FROM
tv.dau
WHERE
`date` <= d.`date`
AND `tv_post_id` = d.`tv_post_id`)
";
if (mysqli_query($conn, $sql)) {
} else {
echo mysqli_error($conn);
}
$sql = "INSERT INTO `kpi_dau_per_os`
SELECT `date`,`os_id`,`tv_post_id`,count(DISTINCT`user_id`) AS `nb_users`
FROM `dau`
WHERE 1
GROUP BY `date`,`os_id`,`tv_post_id`
ON DUPLICATE KEY UPDATE
`nb_users` = values(`nb_users`)
";
if (mysqli_query($conn, $sql)) {
} else {
echo mysqli_error($conn);
}
$sql = "INSERT INTO `kpi_time_spent`
SELECT `date`,`tv_post_id`,SUM(`time_spent`)/SUM(`number_of_launches`) AS `avg_time_per_session`, SUM(`time_spent`) AS `total_time_spent`
FROM `dau`
WHERE 1
GROUP BY `date`,`tv_post_id`
ON DUPLICATE KEY UPDATE
`avg_time_per_session` = values(`avg_time_per_session`),
`total_time_spent` = values(`total_time_spent`)
";
if (mysqli_query($conn, $sql)) {
} else {
echo mysqli_error($conn);
}
echo "ok";
function lastDate($table){
global $conn;
$sql = "SELECT `date` FROM `" . $table . "` ORDER BY `date` DESC limit 1";
$result = mysqli_query($conn, $sql);
if (mysqli_query($conn, $sql)) {
while($row = mysqli_fetch_assoc($result)) {
return $row['date'];
}
echo "executed\r\n";
} else {
echo mysqli_error($conn);
}
return false;
}