В моей базе данных PostgreSQL (version: 11.4
) у меня есть таблица с именем table_1
, в которой есть только один столбец. Тип данных этого столбца - строковый массив (_varchar
).
| dependencies |
|----------------|
|{\1} |
|{\1,\1\2} |
|{\1,\1\2,\1\2\3}|
Кроме того, у меня есть таблица с именем table_2
, которая имеет такую структуру:
| employee | dependence |
|----------------|------------|
| Alex | \1 |
| Mark | \1 |
| Lily | \1\2 |
| Grace | \1\2 |
| Evie | \1\2 |
| Bob | \1\2\3 |
| Mark | \1\2 |
Как сделать Я проверяю, включена ли строка в массив? В моем случае я попытался проверить, существует ли значение столбца dependence
из table_2
в массивах столбца dependencies
из table_1
.
Другими словами, я пытаюсь получить такой результат:
| dependencies | total |
|----------------|-------|
|{\1} | 2 |
|{\1,\1\2} | 6 |
|{\1,\1\2,\1\2\3}| 7 |
SQL запрос, который я пробовал:
select
table_1.dependencies,
calculation.total
from
table_1
join lateral (
select
count(*) as total
from
table_2
where
table_2.dependence in table_1.dependencies /* ? */
) calculation on 1 = 1