История изменений
Исправление Toxo2, (текущая версия) :
SELECT
y.s
,max(y.rn)
FROM (
SELECT
a.*
,ROW_NUMBER() OVER(PARTITION BY lower(st)) AS rn
FROM
UNNEST(ARRAY[
'Sun, moon, earth and Sun.More sun'
,'Mars,jupyter,neptun'
,'Saturn,Uran,Saturn'
]) a(s)
CROSS JOIN
regexp_split_to_table(a.s, '[^\w]+') st
) y
WHERE
y.rn > 1
GROUP BY 1
;
типа того, возможно
выхлоп:
|s |max|
|---------------------------------|---|
|Saturn,Uran,Saturn |2 |
|Sun, moon, earth and Sun.More sun|3 |
ну, или если есть известный разделитель для определения «подстрок» - тогда по нему split.
Исправление Toxo2, :
SELECT
y.s
,max(y.rn)
FROM (
SELECT
a.*
,ROW_NUMBER() OVER(PARTITION BY lower(st)) AS rn
FROM
UNNEST(ARRAY[
'Sun, moon, earth and Sun.More sun'
,'Mars,jupyter,neptun'
,'Saturn,Uran,Saturn'
]) a(s)
CROSS JOIN
regexp_split_to_table(a.s, '[^\w]+') st
) y
WHERE
y.rn > 1
GROUP BY 1
;
типа того, возможно
выхлоп:
|s |max|
|---------------------------------|---|
|Saturn,Uran,Saturn |2 |
|Sun, moon, earth and Sun.More sun|3 |
ну или есть известный разделитель для определения «подстрок» - тогда по нему split.
Исправление Toxo2, :
SELECT
y.s
,max(y.rn)
FROM (
SELECT
a.*
,ROW_NUMBER() OVER(PARTITION BY lower(st)) AS rn
FROM
UNNEST(ARRAY[
'Sun, moon, earth and Sun.More sun'
,'Mars,jupyter,neptun'
,'Saturn,Uran,Saturn'
]) a(s)
CROSS JOIN
regexp_split_to_table(a.s, '[^\w]+') st
) y
WHERE
y.rn > 1
GROUP BY 1
;
типа того, возможно
выхлоп:
|s |max|
|---------------------------------|---|
|Saturn,Uran,Saturn |2 |
|Sun, moon, earth and Sun.More sun|3 |
Исправление Toxo2, :
SELECT
y.s
,max(y.rn)
FROM (
SELECT
a.*
,ROW_NUMBER() OVER(PARTITION BY lower(st)) AS rn
FROM
UNNEST(ARRAY[
'Sun, moon, earth and Sun.More sun'
,'Mars,jupyter,neptun'
,'Saturn,Uran,Saturn'
]) a(s)
LEFT JOIN
regexp_split_to_table(a.s, '[^\w]') st ON length(st) > 0
) y
WHERE
y.rn > 1
GROUP BY 1
;
типа того, возможно
выхлоп:
|s |max|
|---------------------------------|---|
|Saturn,Uran,Saturn |2 |
|Sun, moon, earth and Sun.More sun|3 |
Исходная версия Toxo2, :
SELECT
y.s
,max(y.rn)
FROM (
SELECT
a.*
,ROW_NUMBER() OVER(PARTITION BY lower(st)) AS rn
FROM
UNNEST(ARRAY[
'Sun, moon, earth and Sun.More sun'
,'Mars,jupyter,neptun'
,'Saturn,Uran,Saturn'
]) a(s)
LEFT JOIN
regexp_split_to_table(a.s, '[^\w]') st ON length(st) > 0
) y
WHERE
y.rn > 1
GROUP BY 1
;
типа того, возможно