brainy-addition-11488
05/24/2022, 8:36 AMline 59:5: Column 'dimension' cannot be resolved
and here is my query:
-- test_metric_trino (binomial)
WITH __rawExperiment as (
SELECT
user_id as user_id,
timestamp as timestamp,
experiment_id as experiment_id,
variation_id as variation_id
FROM
hive.experiments.viewed_experiment
),
__experiment as (
-- Viewed Experiment
SELECT
e.user_id as user_id,
cast(e.variation_id as varchar) as variation,
e.timestamp as conversion_start,
e.timestamp + INTERVAL '72' hour as conversion_end
FROM
__rawExperiment e
WHERE
e.experiment_id = 'test_trino2'
AND e.timestamp >= from_iso8601_timestamp('2022-05-24T075900.000Z')
),
__metric as (
-- Metric (test_metric_trino)
SELECT
user_id as user_id,
1 as value,
m.timestamp as conversion_start,
m.timestamp as conversion_end
FROM
(
SELECT
user_id,
occurrence_timestamp as timestamp
FROM
hive.khabarchin.action_event
WHERE
event_id = 74
) m
WHERE
m.timestamp >= from_iso8601_timestamp('2022-05-24T075900.000Z')
),
__distinctUsers as (
-- One row per user/dimension
SELECT
e.user_id,
'All' as dimension,
(
CASE
WHEN count(distinct e.variation) > 1 THEN '__multiple__'
ELSE max(e.variation) END
) as variation,
MIN(e.conversion_start) as conversion_start,
MIN(e.conversion_end) as conversion_end
FROM
__experiment e
GROUP BY
dimension,
e.user_id
),
__userMetric as (
-- Add in the aggregate metric value for each user
SELECT
d.variation,
d.dimension,
1 as value
FROM
__distinctUsers d
JOIN __metric m ON (m.user_id = d.user_id)
WHERE
m.conversion_start >= d.conversion_start
AND m.conversion_start <= d.conversion_end
GROUP BY
variation,
dimension,
d.user_id
),
__overallUsers as (
-- Number of users in each variation
SELECT
variation,
dimension,
COUNT(*) as users
FROM
__distinctUsers
GROUP BY
variation,
dimension
),
__stats as (
-- Sum all user metrics together to get a total per variation/dimension
SELECT
variation,
dimension,
COUNT(*) as count,
AVG(value) as mean,
STDDEV(value) as stddev
FROM
__userMetric
GROUP BY
variation,
dimension
)
SELECT
s.variation,
s.dimension,
s.count,
s.mean,
s.stddev,
u.users
FROM
__stats s
JOIN __overallUsers u ON (
s.variation = u.variation
AND s.dimension = u.dimension
)future-teacher-7046
SELECT
'All' as dimension
...
GROUP BY dimension
future-teacher-7046
brainy-addition-11488
05/24/2022, 11:45 AMfuture-teacher-7046
brainy-addition-11488
05/28/2022, 8:50 AMbrainy-addition-11488
05/28/2022, 8:50 AM`-- ${metric.name} (${metric.type})
WITH
${idJoinSQL}
__rawExperiment as (
${replaceDateVars(
exposureQuery.query,
phase.dateStarted,
phase.dateEnded
)}
),
__experiment as (${this.getExperimentCTE({
experiment,
phase,
baseIdType,
conversionWindowHours:
(activationMetric
? activationMetric.conversionWindowHours
: metric.conversionWindowHours) || 0,
conversionDelayHours:
(activationMetric
? activationMetric.conversionDelayHours
: metric.conversionDelayHours) || 0,
experimentDimension:
dimension?.type === "experiment" ? dimension.id : null,
})})
, __metric as (${this.getMetricCTE({
metric,
baseIdType,
idJoinMap,
startDate: metricStart,
endDate: metricEnd,
})})
${
segment
? `, __segment as (${this.getSegmentCTE(
segment,
baseIdType,
idJoinMap
)})`
: ""
}
${
dimension?.type === "user"
? `, __dimension as (${this.getDimensionCTE(
dimension.dimension,
baseIdType,
idJoinMap
)})`
: ""
}
${
activationMetric
? `, __activationMetric as (${this.getMetricCTE({
metric: activationMetric,
conversionWindowHours:
metric.conversionWindowHours || DEFAULT_CONVERSION_WINDOW_HOURS,
conversionDelayHours: metric.conversionDelayHours,
baseIdType,
idJoinMap,
startDate: metricStart,
endDate: metricEnd,
})})
, __activatedUsers as (${this.getActivatedUsersCTE(baseIdType)})`
: ""
}
, __distinctUsers as (
-- One row per user/dimension${
removeMultipleExposures ? "" : "/variation"
}
SELECT
e.${baseIdType},
${
dimension?.type === "user"
? "d.value"
: dimension?.type === "experiment"
? "e.dimension"
: dimension?.type === "date"
? this.formatDate(this.dateTrunc("e.conversion_start"))
: activationDimension
? this.ifElse(
`a.${baseIdType} IS NULL`,
"'Not Activated'",
"'Activated'"
)
: "'All'"
} as dimension,
${
removeMultipleExposures
? this.ifElse(
"count(distinct e.variation) > 1",
"'__multiple__'",
"max(e.variation)"
)
: "e.variation"
} as variation,
MIN(${this.ifNullFallback(
activationMetric ? "a.conversion_start" : null,
"e.conversion_start"
)}) as conversion_start,
MIN(${this.ifNullFallback(
activationMetric ? "a.conversion_end" : null,
"e.conversion_end"
)}) as conversion_end
FROM
__experiment e
${
segment
? `JOIN __segment s ON (s.${baseIdType} = e.${baseIdType})`
: ""
}
${
dimension?.type === "user"
? `JOIN __dimension d ON (d.${baseIdType} = e.${baseIdType})`
: ""
}
${
activationMetric
? `
${activationDimension ? "LEFT " : ""}JOIN __activatedUsers a ON (
a.${baseIdType} = e.${baseIdType}
)`
: ""
}
${segment ? `WHERE s.date <= e.conversion_start` : ""}
GROUP BY
1, 2${removeMultipleExposures ? "" : ", 3"}
)
, __userMetric as (
-- Add in the aggregate metric value for each user
SELECT
d.variation,
d.dimension,
${aggregate} as value
FROM
__distinctUsers d
JOIN __metric m ON (
m.${baseIdType} = d.${baseIdType}
)
WHERE
m.conversion_start >= d.conversion_start
AND m.conversion_start <= d.conversion_end
GROUP BY
1,2,3
)
, __overallUsers as (
-- Number of users in each variation
SELECT
variation,
dimension,
COUNT(*) as users
FROM
__distinctUsers
GROUP BY
1,
2
)
, __stats as (
-- Sum all user metrics together to get a total per variation/dimension
SELECT
variation,
dimension,
COUNT(*) as count,
${this.avg("value")} as mean,
${this.stddev("value")} as stddev
FROM
__userMetric
GROUP BY
1,
2
)
SELECT
s.variation,
s.dimension,
s.count,
s.mean,
s.stddev,
u.users
FROM
__stats s
JOIN __overallUsers u ON (
s.variation = u.variation
AND s.dimension = u.dimension
)
`
chilly-umbrella-90459
06/11/2022, 11:23 PMchilly-umbrella-90459
06/11/2022, 11:26 PMchilly-umbrella-90459
06/12/2022, 12:15 AMfuture-teacher-7046
chilly-umbrella-90459
06/12/2022, 12:20 PMchilly-umbrella-90459
06/13/2022, 7:22 AMfuture-teacher-7046
chilly-umbrella-90459
06/13/2022, 2:51 PMOpen source platform for stress free deployments, measured impact, and smarter decisions.
Powered by