MySQL:尝试 Return 2020 年按月统计引荐来源时出现错误 1055
MySQL: Error 1055 When attempting to Return Count of Referrer by Month in Year 2020
我收到以下错误代码:
错误代码:1055。ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中并且包含非聚合列 'usergrowthhomework.weblogs.day',它在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by
不兼容
此代码是我尝试 运行 以下查询的结果,该查询应该 return 'referrer' 在 2020 年每个月出现的次数:
SELECT MONTH(day) MONTH, referrer, COUNT(referrer) AS cumulative_pageviews
FROM weblogs
WHERE YEAR(day) >= '2020'
GROUP BY MONTH(day), referrer
ORDER BY day, referrer;
我的 table 的专栏如下所示:
user_no - 整数
名称 - varchar(200)
推荐人 - varchar(200)
start_date - 时间戳
天 - 日期
谁能解释为什么我会收到这样的错误?我清楚地在 GROUP BY 和 SELECT 子句中包含了所有适当的表达式。
我正在使用 MySQL workbench 到 运行 这个查询。
如错误所示,order by
子句中的 day
列不在 group by
子句中,因此不能在那里使用。您应该按 MONTH(day)
来订购:
SELECT MONTH(day) MONTH, referrer, COUNT(referrer) AS cumulative_pageviews
FROM weblogs
WHERE YEAR(day) >= 2020
GROUP BY MONTH(day), referrer
ORDER BY MONTH(day), referrer;
-- Here -^
我收到以下错误代码:
错误代码:1055。ORDER BY 子句的表达式 #1 不在 GROUP BY 子句中并且包含非聚合列 'usergrowthhomework.weblogs.day',它在功能上不依赖于 GROUP BY 子句中的列;这与 sql_mode=only_full_group_by
不兼容此代码是我尝试 运行 以下查询的结果,该查询应该 return 'referrer' 在 2020 年每个月出现的次数:
SELECT MONTH(day) MONTH, referrer, COUNT(referrer) AS cumulative_pageviews
FROM weblogs
WHERE YEAR(day) >= '2020'
GROUP BY MONTH(day), referrer
ORDER BY day, referrer;
我的 table 的专栏如下所示:
user_no - 整数 名称 - varchar(200) 推荐人 - varchar(200) start_date - 时间戳 天 - 日期
谁能解释为什么我会收到这样的错误?我清楚地在 GROUP BY 和 SELECT 子句中包含了所有适当的表达式。
我正在使用 MySQL workbench 到 运行 这个查询。
如错误所示,order by
子句中的 day
列不在 group by
子句中,因此不能在那里使用。您应该按 MONTH(day)
来订购:
SELECT MONTH(day) MONTH, referrer, COUNT(referrer) AS cumulative_pageviews
FROM weblogs
WHERE YEAR(day) >= 2020
GROUP BY MONTH(day), referrer
ORDER BY MONTH(day), referrer;
-- Here -^