Presto 中不区分大小写的分组依据

Case Insensitive group by in Presto

默认情况下,Presto 执行区分大小写的分组依据。但我想知道如何进行不区分大小写的分组。一种方法是将列中的所有内容转换为小写,然后进行分组即

select * from ( select lower(name_of_the_column)), other_columns from table)
where conditions..
group by name_of_the_column

我们可以减少时间的一种方法是将 select 语句中的条件放在括号内。有没有更好的方法?

您不需要将 lower(...) 推入子查询。如果你简单地写:

SELECT lower(name_of_the_column), ...
FROM ...
GROUP BY lower(name_of_the_column) -- or just "GROUP BY 1"

Presto 只会将每行转换为小写一次(而不是两次)。