我想计算某些字段值出现在某些纬度/经度点的实例。 Lat / Lon是字符串,所以我将它们转换为float,然后将它们舍入到1m(小数点后5位)。
netstandard2.0
作为结果,我希望每个lat / lon连接,“某个值”出现在“field”值中的次数。
我的输出应该类似于以下元组:
SELECT
concat(ROUND(FLOAT(lat), 5),
ROUND(FLOAT(lon), 5)),
COUNT(field) AS fcount
FROM
MyTable
GROUP BY
lat,
lon,
fcount;
上面的查询在BigQuery中给出了 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
...
错误。但如果我把它放入,它说:不能按汇总分组。我想在构建此查询时提供一些帮助。
答案 0 :(得分:2)
为了使您的查询起作用,您应该尝试如下(看起来您使用的是BigQuery Legacy 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