You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Google Sheets编码查询中用UNIQUE去除重复行?

问题描述

我在Google Sheets里通过URL编码执行过以下SQL查询,成功获取数据:
原始SQL语句:

SELECT Q, Y, J WHERE Y IS NOT NULL AND NOT Y LIKE '[%' ORDER BY Q, Y, J

对应的URL编码后内容:

SELECT%20Q%2C%20Y%2C%20J%20WHERE%20Y%20IS%20NOT%20NULL%20AND%20NOT%20Y%20LIKE%20'%5B%25'%20ORDER%20BY%20Q%2C%20Y%2C%20J

现在想去除结果中整行完全重复的数据,尝试用以下Sheets公式:

=UNIQUE(QUERY(A2:Y3608,"SELECT Q, Y, J WHERE Y IS NOT NULL AND NOT Y LIKE '[%' ORDER BY Q, Y, J"))

但把这个语句转成URL编码查询时,出现错误:

{"version":"0.6","reqId":"0","status":"error","errors":[{"reason":"invalid_query","message":"INVALID_QUERY","detailed_message":"Invalid query: PARSE_ERROR: Encountered " "UNIQUE "" at line 1, column 1.\nWas expecting one of:\n \n "select" ...\n "where" ...\n "group" ...\n "pivot" ...\n "order" ...\n "skipping" ...\n "limit" ...\n "offset" ...\n "label" ...\n "format" ...\n "options" ...\n "}]}

请问怎么让去重逻辑在URL编码查询的场景下正常工作?

解决方法

原因说明

URL查询使用的是Google Visualization API Query Language,这套语法只支持自身定义的关键词(比如SELECT、WHERE、GROUP BY等),不支持Google Sheets的内置函数(比如UNIQUE),所以直接把UNIQUE放到URL的查询语句里会触发语法解析错误。

方案1:用GROUP BY实现去重(适合URL查询场景)

既然要整行数据唯一,直接在SQL语句里对所有选中的列做GROUP BY,就能自动过滤重复行,不需要依赖UNIQUE函数。修改后的SQL语句:

SELECT Q, Y, J WHERE Y IS NOT NULL AND NOT Y LIKE '[%' GROUP BY Q, Y, J ORDER BY Q, Y, J

对应的URL编码后内容:

SELECT%20Q%2C%20Y%2C%20J%20WHERE%20Y%20IS%20NOT%20NULL%20AND%20NOT%20Y%20LIKE%20'%5B%25'%20GROUP%20BY%20Q%2C%20Y%2C%20J%20ORDER%20BY%20Q%2C%20Y%2C%20J

方案2:在Sheets单元格内使用UNIQUE(适合直接操作Sheets的场景)

如果不是必须通过URL查询,而是直接在Google Sheets里处理数据,你最初写的=UNIQUE(QUERY(...))公式是有效的,直接在单元格输入即可,不需要转成URL编码——因为这个公式是Sheets的内置函数组合,和URL查询的语法体系不同。


内容的提问来源于stack exchange,提问作者Jude_Dicken

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 17:03:15