【问题标题】:MYSQL GROUP BY error in cartodbcartodb 中的 MYSQL GROUP BY 错误
【发布时间】:2017-02-09 02:09:48
【问题描述】:

我正在使用carto 来尝试可视化一些geoJSON。 Carto 将所有这些数据放入一个 MYSQL 数据库中,供您查询并在地图上显示。这可能有助于了解,但可能对解决我的问题并不重要。

重要的列是cartodb_idthe_geomstate

表名是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


【解决方案1】:

要解决你的错误,你必须这样做

SELECT * FROM mcdonalds GROUP BY state, cartodb_id, the_geom;

SELECT 语句中的每一列都必须在 GROUP BY 子句中。

【讨论】:

    猜你喜欢
    • 2016-08-02
    • 2018-07-16
    • 1970-01-01
    • 2011-07-18
    • 1970-01-01
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2021-04-01
    相关资源
    最近更新 更多