@@ -89,12 +89,11 @@ function vitalsByDimension(config: VitalsByDimensionConfig): CustomSqlFn {
8989
9090const VITALS_PAGE_METRICS = `
9191 wv.metric_name as metric_name,
92- quantilesTDigest(0.50, 0.75, 0.90, 0.95, 0.99)(wv.metric_value) as _q,
93- _q[1] as p50,
94- _q[2] as p75,
95- _q[3] as p90,
96- _q[4] as p95,
97- _q[5] as p99,
92+ quantileTDigest(0.50)(wv.metric_value) as p50,
93+ quantileTDigest(0.75)(wv.metric_value) as p75,
94+ quantileTDigest(0.90)(wv.metric_value) as p90,
95+ quantileTDigest(0.95)(wv.metric_value) as p95,
96+ quantileTDigest(0.99)(wv.metric_value) as p99,
9897 count() as samples
9998` ;
10099
@@ -133,22 +132,21 @@ export const VitalsBuilders: Record<string, SimpleQueryConfig> = {
133132 const { websiteId, startDate, endDate } = ctx ;
134133 return {
135134 sql : `
136- SELECT
137- metric_name,
138- quantilesTDigest(0.50, 0.75, 0.90, 0.95, 0.99)(metric_value) as _q,
139- _q[1] as p50,
140- _q[2] as p75,
141- _q[3] as p90,
142- _q[4] as p95,
143- _q[5] as p99,
144- avg(metric_value) as avg_value,
145- count() as samples
146- FROM ${ Analytics . web_vitals_spans }
147- WHERE
148- client_id = {websiteId:String}
149- AND timestamp >= toDateTime({startDate:String})
150- AND timestamp <= toDateTime(concat({endDate:String}, ' 23:59:59'))
151- GROUP BY metric_name
135+ SELECT metric_name, _q[1] as p50, _q[2] as p75, _q[3] as p90,
136+ _q[4] as p95, _q[5] as p99, avg_value, samples
137+ FROM (
138+ SELECT
139+ metric_name,
140+ quantilesTDigest(0.50, 0.75, 0.90, 0.95, 0.99)(metric_value) as _q,
141+ avg(metric_value) as avg_value,
142+ count() as samples
143+ FROM ${ Analytics . web_vitals_spans }
144+ WHERE
145+ client_id = {websiteId:String}
146+ AND timestamp >= toDateTime({startDate:String})
147+ AND timestamp <= toDateTime(concat({endDate:String}, ' 23:59:59'))
148+ GROUP BY metric_name
149+ )
152150 ORDER BY metric_name
153151 ` ,
154152 params : { websiteId, startDate, endDate } ,
@@ -182,22 +180,21 @@ export const VitalsBuilders: Record<string, SimpleQueryConfig> = {
182180 const { websiteId, startDate, endDate } = ctx ;
183181 return {
184182 sql : `
185- SELECT
186- toDate(timestamp) as date,
187- metric_name,
188- quantilesTDigest(0.50, 0.75, 0.90, 0.95, 0.99)(metric_value) as _q,
189- _q[1] as p50,
190- _q[2] as p75,
191- _q[3] as p90,
192- _q[4] as p95,
193- _q[5] as p99,
194- count() as samples
195- FROM ${ Analytics . web_vitals_spans }
196- WHERE
197- client_id = {websiteId:String}
198- AND timestamp >= toDateTime({startDate:String})
199- AND timestamp <= toDateTime(concat({endDate:String}, ' 23:59:59'))
200- GROUP BY date, metric_name
183+ SELECT date, metric_name, _q[1] as p50, _q[2] as p75, _q[3] as p90,
184+ _q[4] as p95, _q[5] as p99, samples
185+ FROM (
186+ SELECT
187+ toDate(timestamp) as date,
188+ metric_name,
189+ quantilesTDigest(0.50, 0.75, 0.90, 0.95, 0.99)(metric_value) as _q,
190+ count() as samples
191+ FROM ${ Analytics . web_vitals_spans }
192+ WHERE
193+ client_id = {websiteId:String}
194+ AND timestamp >= toDateTime({startDate:String})
195+ AND timestamp <= toDateTime(concat({endDate:String}, ' 23:59:59'))
196+ GROUP BY date, metric_name
197+ )
201198 ORDER BY date ASC, metric_name
202199 ` ,
203200 params : { websiteId, startDate, endDate } ,
0 commit comments