Google Data Studio运行售票量统计GROUP BY查询报错如何解决
问题出现的原因
- Google Data Studio的自定义查询仅支持单句SQL执行,你语句中的第一行
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));是独立的配置语句,无法和后续的SELECT语句一同执行,会直接触发语法报错。 - 原SQL本身不符合标准SQL规范:关闭
ONLY_FULL_GROUP_BY后MySQL允许非分组、非聚合的字段出现在SELECT子句中,但这种写法是取分组内随机某一行的tickets值,本身就无法实现“统计每小时总售票量”的需求,且Google Data Studio严格遵循标准SQL规则,不支持这种非规范的GROUP BY写法,即便能执行SET语句也会报错。
解决方案
直接使用符合标准SQL规范的统计语句即可,不需要修改sql_mode,正确语句如下:
SELECT HOUR(`time`) AS `hour`, SUM(tickets) AS total_tickets FROM Showtimes_View GROUP BY HOUR(`time`) ORDER BY `hour`
改动说明:
- 删除了Data Studio不支持的SET配置语句
- 对
tickets字段增加SUM()聚合函数,正确统计每小时的总售票量,匹配业务需求 - 保证SELECT子句中的非聚合字段和GROUP BY的分组字段完全一致,符合标准SQL要求,可正常在Data Studio中运行。
内容的提问来源于stack exchange,提问作者Chaim Shtokhamer
相关产品推荐
相关产品推荐

