#standardSQL
"aa bb" と "bb aa" を同じものとみなしたい
上記のテキストが検索キーワードで、語順を無視して集計したいときとか
(語順がそこまで重要でない検索のログ集計とか)
#standardSQL
CREATE TEMPORARY FUNCTION
SPLIT_SORT(str STRING)
RETURNS STRING AS ((
SELECT ARRAY_TO_STRING(ARRAY_AGG(kw), " ")
FROM (
SELECT
kw
FROM
UNNEST(SPLIT(str, " ")) AS kw
ORDER BY
kw ASC
)
));
WITH
a AS (
SELECT
["a a", "a aa", "aa a", "a aa aaa"] as aa
)
SELECT
aaa,
SPLIT_SORT(aaa) as sort_aaa
FROM
a,UNNEST(aa) aaa
SPLIT_SORT
という関数がそれ
この記事を参考にさせていただきました
https://qiita.com/shiozaki/items/11aca34553e5e60abf19