我正在尝试编写一个SQL查询,该查询允许我使用历史数据创建折线图。我试图弄清楚随着时间的流逝(按日计算),有多少用户正在使用我的应用的每个版本。我的Y轴将是所有应用程序的使用百分比(在100个应用中),X轴是一天,并且每个构建版本都不同。在任何时候,所有行的总和应等于100%。
由于该查询除了日期外还应按版本/版本进行分组,因此我试图找出如何获取查询中任何给定日期的总用户百分比。到目前为止,我可以得到此查询:
SELECT DISTINCT
sub.Version,sub.Build,sub.app_id,sub.Users,sub.`day`,(
SELECT COUNT(DISTINCT user_id)
FROM snowplow_enricher_good seg
) AS Total,(sub.Users/Total) * 100 AS Percent
FROM
(
SELECT
visitParamExtractString(seg.contexts,'version') AS Version,visitParamExtractString(seg.contexts,'build') AS Build,seg.app_id,seg.`day`,concat(
Version,' (',Build,')'
) AS AppBuildVersion,COUNT(DISTINCT seg.user_id) AS Users
FROM snowplow_enricher_good seg
GROUP BY Version,app_id,`day`
ORDER BY Users DESC
) AS sub
WHERE sub.app_id = 'APPID';
请注意,当前显示的百分比是所有天的百分比,而不是单日。我尝试在自定义WHERE
语句中创建一个FROM
子句,但是失败了。
预先感谢您:)