2017-02-08 17 views
0

私はを使用していくつかのgeoJSONを視覚化しようとしています。 CartoはこのデータをすべてMYSQLデータベースに保存し、マップ上で照会して表示することができます。これは知るのに役立つかもしれませんが、私の問題を解決するために重要ではないかもしれません。私はマクドナルドの表から選択するとMYSQL GROUP BYエラーcartodb

重要な列がテーブル名がmcdonalds

あるcartodb_idthe_geomstate

あり、私は状態によってグループに結果のすべてをしたいです。これは私の現在のクエリです:

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とあまりにも経験していないんだけど、私はここで見てきたものから、 、私は別の選択をしてテーブルに参加する必要がありますか?私はいくつかのバリエーションを試しましたが、うまくいけば、これは簡単な答えです。あなたのエラーを修正するには

+0

おそらく、sql_modeは 'ONLY_FULL_GROUP_BY'に設定されています。この場合、selectにはgroup by句または集約に記載された列を含めることができます。とにかく、なぜあなたは州ごとにグループ化している間にすべての列を直接選択していますか...意味がありません。 – GurV

+0

申し訳ありませんが、まだ学習しています。 は 'cartodb_id、the_geom、状態を選択:;:これは正常に動作します私は前に説明したように、同じエラーを取得します述べることにより、グループを変更した場合、' しかし 'cartodb_id、the_geomを選択して、マクドナルドGROUP BYの状態 はcartodb_id from mcdonalds GROUP BY状態; ' – ceckenrode

答えて

2

あなたは、SELECTステートメント内のすべての列がGROUP BY句内になければなりません

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

を行う必要があります。

+1

説明してくれてありがとう、これは私のためにそれをクリア! – ceckenrode