如何在Google Sheet中运行嵌套/子查询实现指定SQL查询效果
Google Sheets实现对应SQL逻辑操作指南
需求对应逻辑
待复现的原SQL逻辑:按id字段分组,取每个id分组中count值最小的整行记录,返回id、tod、count三个字段;匹配规则为(id,count)和分组计算出的各id最小count值完全匹配,同一id下如果有多行count等于最小值则全部返回。
以下操作默认原始数据存放在A:C列,列顺序依次为id(A列)、tod(B列)、count(C列),第一行为表头,数据从第2行开始,若实际数据位置不同替换对应列标即可。
具体操作
选中空白区域的起始单元格(比如E1,和原始数据间隔至少1列避免覆盖内容),输入对应公式按回车,即可自动生成全部结果:
- 全场景适配公式(100%匹配原SQL逻辑,推荐)
=FILTER(A:C,C:C=MAP(A:A,LAMBDA(id_val,IF(id_val="",,MINIFS(C:C,A:A,id_val)))))- 逻辑说明:逐行计算当前id对应的最小count值,筛选所有count值等于对应id最小值的行,完全对齐原SQL的匹配规则,无场景限制。
- 简化QUERY公式(适用无重复最小值场景)
如果确认每个id下不存在多行tod对应相同最小count的情况,可以使用更短的公式:=QUERY(A:C,"select A,B,min(C) where A is not null group by A,B order by A label min(C)'count'")
样例参考
- 原始数据集样例:

- 期望输出结果集样例:

内容的提问来源于stack exchange,提问作者Harsh kumar
相关产品推荐
相关产品推荐

