我有以下查询(省略了相关部分):
SELECT DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ') formatted_calc_dt,
CONCAT(DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ'), '')
FROM calc_calculation_results
GROUP BY formatted_calc_dt
错误代码:1055。SELECT列表的表达式#2不在GROUP BY子句中,并且包含非聚合列' my_database_name.calc_calculation_results.calc_dt'它在功能上不依赖于GROUP BY子句中的列;这与sql_mode = only_full_group_by
不兼容
挑战是:
calc_dt
与其他内容联系起来如果有帮助,分组的目的是按小时对日期进行分组。
有什么方法可以得到我想要的东西吗?
答案 0 :(得分:0)
试试这个:
SELECT DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ') formatted_calc_dt,
CONCAT(DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ'), '')
FROM calc_calculation_results
GROUP BY DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ')
答案 1 :(得分:0)
我最终这样做了:
SELECT DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ') formatted_calc_dt,
CONCAT(DATE_FORMAT(calc_dt, '%Y-%m-%dT%TZ'), '')
FROM calc_calculation_results
GROUP BY calc_dt
这是有效的,因为我的数据库中的日期只存储在精确的小时数,而不是几分钟或几秒。
我意识到这个查询并没有像现在这样有意义。当涉及其他列时更有意义。希望这很清楚。