|
13 | 13 | CommercilizationType: string, |
14 | 14 | DeviceVendor: string, |
15 | 15 | HappinessScore: real, |
16 | | - UserId: string |
| 16 | + UserId: string, |
| 17 | + EndTime: datetime |
17 | 18 | ), |
18 | 19 | iptv_raw( |
19 | 20 | AppVersion: string, |
20 | 21 | Country: string, |
| 22 | + EndTime: datetime, |
21 | 23 | HappinessScore: real, |
22 | 24 | HwModel: string, |
23 | 25 | Service: string, |
|
79 | 81 | ) |
80 | 82 |
|
81 | 83 | // Create function |
| 84 | +.create-or-alter function with (docstring = 'Function to get latest threshold value for named threshold', folder='thresholds') GetThreshold(valueName: string) { |
| 85 | + toscalar( |
| 86 | + thresholds |
| 87 | + | where name == valueName |
| 88 | + | order by timestamp desc |
| 89 | + | limit 1 |
| 90 | + | summarize max(value) |
| 91 | + ) |
| 92 | +} |
| 93 | + |
82 | 94 | .create-or-alter function with (docstring = 'Function to get average happiness scores for iptv data', folder='iptv') IptvGetAvgHappinessScore() { |
83 | 95 | let currentTimestamp = now(); |
84 | 96 | let movingWindowInMinutes = GetThreshold('movingWindowInMinutes'); |
|
125 | 137 | DeviceVendor |
126 | 138 | } |
127 | 139 |
|
128 | | -.create-or-alter function with (docstring = 'Function to get latest threshold value for named threshold', folder='thresholds') GetThreshold(valueName: string) { |
129 | | - toscalar( |
130 | | - thresholds |
131 | | - | where name == valueName |
132 | | - | order by timestamp desc |
133 | | - | limit 1 |
134 | | - | summarize max(value) |
135 | | - ) |
| 140 | +.create-or-alter function with (docstring = 'Function to get average happiness scores for ott data for one column', folder='ott') OttGetAvgHappinessScoreForOneColumn(columnName: string) { |
| 141 | + ott_happiness |
| 142 | + | extend TotalHappiness = NumberOfUsers * AvgHappinessScore |
| 143 | + | summarize |
| 144 | + SumTotalHappiness = sum(TotalHappiness), |
| 145 | + SumNumberOfUsers = sum(NumberOfUsers) |
| 146 | + by |
| 147 | + Timestamp, |
| 148 | + column_ifexists(columnName, 'columnName does not exist') |
| 149 | + | extend AvgHappinessScore = SumTotalHappiness / SumNumberOfUsers |
| 150 | + | project-away SumTotalHappiness |
| 151 | +} |
| 152 | + |
| 153 | +.create-or-alter function with (docstring = 'Function to get average happiness scores for ott data for two columns', folder='ott') OttGetAvgHappinessScoreForTwoColumns(columnName1: string, columnName2: string) { |
| 154 | + ott_happiness |
| 155 | + | extend TotalHappiness = NumberOfUsers * AvgHappinessScore |
| 156 | + | summarize |
| 157 | + SumTotalHappiness = sum(TotalHappiness), |
| 158 | + SumNumberOfUsers = sum(NumberOfUsers) |
| 159 | + by |
| 160 | + Timestamp, |
| 161 | + column_ifexists(columnName1, 'columnName1 does not exist'), |
| 162 | + column_ifexists(columnName2, 'columnName2 does not exist') |
| 163 | + | extend AvgHappinessScore = SumTotalHappiness / SumNumberOfUsers |
| 164 | + | project-away SumTotalHappiness |
| 165 | +} |
| 166 | + |
| 167 | +.create-or-alter function with (docstring = 'Function to get average happiness scores for iptv data for one column', folder='iptv') IptvGetAvgHappinessScoreForOneColumn(columnName: string) { |
| 168 | + iptv_happiness |
| 169 | + | extend TotalHappiness = NumberOfUsers * AvgHappinessScore |
| 170 | + | summarize |
| 171 | + SumTotalHappiness = sum(TotalHappiness), |
| 172 | + SumNumberOfUsers = sum(NumberOfUsers) |
| 173 | + by |
| 174 | + Timestamp, |
| 175 | + column_ifexists(columnName, 'columnName does not exist') |
| 176 | + | extend AvgHappinessScore = SumTotalHappiness / SumNumberOfUsers |
| 177 | + | project-away SumTotalHappiness |
| 178 | +} |
| 179 | + |
| 180 | +.create-or-alter function with (docstring = 'Function to get average happiness scores for iptv data for two columns', folder='iptv') IptvGetAvgHappinessScoreForTwoColumns(columnName1: string, columnName2: string) { |
| 181 | + iptv_happiness |
| 182 | + | extend TotalHappiness = NumberOfUsers * AvgHappinessScore |
| 183 | + | summarize |
| 184 | + SumTotalHappiness = sum(TotalHappiness), |
| 185 | + SumNumberOfUsers = sum(NumberOfUsers) |
| 186 | + by |
| 187 | + Timestamp, |
| 188 | + column_ifexists(columnName1, 'columnName1 does not exist'), |
| 189 | + column_ifexists(columnName2, 'columnName2 does not exist') |
| 190 | + | extend AvgHappinessScore = SumTotalHappiness / SumNumberOfUsers |
| 191 | + | project-away SumTotalHappiness |
136 | 192 | } |
137 | 193 |
|
138 | 194 | //////////////////////////////////////////////// |
|
0 commit comments