Google Sheets中GROUP BY分组后仅返回分组列的实现问询
可行!这样实现就能对齐
完全可以做到!核心是保留原有的分组和排序逻辑,只是在SELECT子句里只保留Col1列就行。
首先先修正一下你原来语句里的小问题:WHERE Col1 = 'dog' or 'bird' 是语法错误,因为or后面的'bird'会被当作布尔值TRUE,导致所有行都被筛选出来。正确的写法应该用IN(更简洁)或者完整的OR条件:Col1 = 'dog' OR Col1 = 'bird'。
然后,要实现只返回Col1但对齐全列结果的需求,查询语句可以写成:
SELECT Col1 WHERE Col1 IN ('dog', 'bird') GROUP BY Col1 ORDER BY SUM(Col2)
为什么这样能对齐?
GROUP BY Col1和全列查询的分组逻辑完全一致,确保每个Item只出现一次;ORDER BY SUM(Col2)用的是和全列查询相同的排序依据(Amount的总和),所以输出的Item顺序和带总和列的结果完全匹配,并排时自然能对齐。
举个例子,你原来的全列查询结果会是:
| Col1 | sum(Col2) |
|---|---|
| bird | 3 |
| dog | 7 |
而上面的语句返回的结果就是:
| Col1 |
|---|
| bird |
| dog |
两者的顺序完全一致,放在一起并排时就能完美对齐啦!
内容的提问来源于stack exchange,提问作者David Tonkin
相关产品推荐
相关产品推荐

