Ome*_*ham 4 snowflake-cloud-data-platform
让我们假设我必须执行以下查询
select column1, count(*) from (values ('a'), ('b'), ('ab'), ('ba')) group by 1;
COLUMN1 COUNT(*)
a 1
b 1
ba 1
ab 1
Run Code Online (Sandbox Code Playgroud)
我希望我的分组对顺序不敏感意味着我想将ab和计数ba为相同的值。所以预期的结果将是
COLUMN1 COUNT(*)
a 1
b 1
ab 2
Run Code Online (Sandbox Code Playgroud)
我考虑过对选择进行排序,以便它将它们处理为相同的值,但我没有找到任何选项来对雪花中的值进行排序。
Gre*_*lik 11
可能有一种方法可以在 SQL 中执行此操作,但 JavaScript UDF 使其变得简单:
create or replace function SORT_STRING(TEXT string)
returns string
language javascript
strict immutable
as
$$
return TEXT.split('').sort().join('');
$$;
select SORT_STRING(column1) SORTED_C1, count(*)
from (values ('a'), ('b'), ('ab'), ('ba')) group by 1;
Run Code Online (Sandbox Code Playgroud)
| 已排序_C1 | 数数(*) |
|---|---|
| A | 1 |
| 乙 | 1 |
| ab | 2 |
| 归档时间: |
|
| 查看次数: |
665 次 |
| 最近记录: |