2017-12-08 10 views
0

いくつかの緯度/経度に現れるフィールド値のインスタンスを数えたいと思います。 Lat/Lonは文字列なので、それらをfloatにキャストし、1m(小数点以下5桁)まで丸めます。bigquery:式 'f0_'がGROUP BYリストに存在しません

SELECT 
    concat(ROUND(FLOAT(lat), 5), 
    ROUND(FLOAT(lon), 5)), 
    COUNT(field) AS fcount 
FROM 
    MyTable 
GROUP BY 
    lat, 
    lon, 
    fcount; 

私が持っていると思い、結果として、各緯度/経度連結のため、回数は、いくつかの値が「フィールド」の値が表示されます。

私の出力は次のタプルのようになります。上記の

lat lon field fcount 
12.34 12.38  A  23 
12.34 12.38  B  11 
12.34 12.38  C  23 
11.34 12.38  A  15 
... 

問合せは、私のBigQueryでExpression 'f0_' is not present in the GROUP BY listエラーが発生します。しかし、私はそれを入れて、それは言う:総計でグループ化することはできません。私はこのクエリを構築するいくつかの助けたいと思います。

答えて

1

あなたは(あなたがBigQueryのレガシーSQLを使用するように見える - レガシーSQLであるので、以下で)以下のように試してみてください、あなたのクエリが機能するために、それはあなたがあなたを言った後、何を返しない方法で、当然の

#legacySQL 
SELECT 
    CONCAT(STRING(ROUND(FLOAT(lat), 5)), 
    STRING(ROUND(FLOAT(lon), 5))) as latlong, 
    COUNT(field) AS fcount 
FROM 
    MyTable 
GROUP BY 1 

をあなたは

#legacySQL 
SELECT 
    ROUND(FLOAT(lat), 5) lat, 
    ROUND(FLOAT(lon), 5) lon, 
    field, 
    COUNT(field) AS fcount 
FROM 
    MyTable 
GROUP BY 1, 2, 3 
の下に試してみてください、あなたのクエリは、このために

を返すことを期待

関連する問題