【发布时间】:2017-02-09 02:09:48
【问题描述】:
我正在使用carto 来尝试可视化一些geoJSON。 Carto 将所有这些数据放入一个 MYSQL 数据库中,供您查询并在地图上显示。这可能有助于了解,但可能对解决我的问题并不重要。
重要的列是cartodb_id、the_geom和state
表名是mcdonalds
当我从 mcdonalds 表中选择时,我想按州对所有结果进行分组。这是我当前的查询:
SELECT * FROM mcdonalds GROUP BY state;
我收到了这个错误:
Syntax error: column "mcdonalds.cartodb_id" must appear in the GROUP BY clause or be used in an aggregate function
我对 SQL 不太熟悉,但从我在这里看到的情况来看,我需要再做一次选择并加入表吗?我尝试了一些变体,希望这对某人来说是一个简单的答案。
【问题讨论】:
-
可能 sql_mode 设置为
ONLY_FULL_GROUP_BY在这种情况下,select 可以包含 group by 子句或聚合中提到的列。无论如何,为什么在按状态分组时直接选择所有列......没有任何意义。 -
抱歉,还在学习中。这工作正常:
SELECT cartodb_id, the_geom, state from mcdonalds GROUP BY cartodb_id;但如果我将组更改为状态,它会得到与之前描述的相同的错误:SELECT cartodb_id, the_geom, state from mcdonalds GROUP BY state;
标签: mysql join group-by cartodb