要解决此错误,您需要将CASE语句中的sum(AvgDeviceTime)更改为sum(AvgDeviceTime) OVER (PARTITION BY datetime_day_Ds, PlatformType)。这将使sum(AvgDeviceTime)成为窗口函数,并在分组后计算每个组的总和。更新后的查询如下所示:

SELECT toStartOfDay(toDateTime(Ds)) AS datetime_day_Ds, PlatformType AS PlatformType, CASE WHEN PlatformType IN (5,6) AND AvgDeviceTime>0 THEN sum(AvgDeviceTime) / count(*) ELSE sum(AvgDeviceTime) OVER (PARTITION BY datetime_day_Ds, PlatformType) END AS index_avgdevicetime_0 FROM log_iMonkey_Wechat_overview WHERE Debug = 0 AND PlatformType != 0 AND Ds >= toDateTime(#day_device_ave_wechat_time.start#) AND Ds <= toDateTime(#day_device_ave_wechat_time.end#) GROUP BY datetime_day_Ds, PlatformType ORDER BY datetime_day_Ds DESC, PlatformType DESC LIMIT 5000

SELECT toStartOfDaytoDateTimeDs AS datetime_day_Ds PlatformType AS PlatformType CASE WHEN PlatformType in 56 AND AvgDeviceTime0 THEN sumAvgDeviceTime count ELSE sumAvgDeviceTime END AS inde

原文地址: https://www.cveoy.top/t/topic/hZa6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录