0
У меня сложный запрос Postgres, который я пытаюсь сделать, главным образом потому, что мои столбцы/данные находятся в типе JSONB.Получите уникальные записи, где тип столбца JSONB
мне нужно получить все записи
- где
Auth.status
являетсяvalid
UserId
является1
- Исключая дубликаты на
Details.reference.card.number
Вот мой стол:
+-----------------------+---------------------------------------------+--------+
| Auth | Details | UserId |
+-----------------------+---------------------------------------------+--------+
| {"status": "valid"} | {"reference": {"card": {"number": "4444"}}} | 1 |
| {"status": "valid"} | {"reference": {"card": {"number": "3321"}}} | 1 |
| {"status": "valid"} | {"reference": {"card": {"number": "4444"}}} | 1 |
| {"status": "Invalid"} | {"reference": {"card": {"number": "3331"}}} | 1 |
| {"status": "valid"} | {"reference": {"card": {"number": "4444"}}} | 1 |
+-----------------------+---------------------------------------------+--------+
Этот запрос должен возвращать выше:
+-----------------------+---------------------------------------------+--------+
| Auth | Details | UserId |
+-----------------------+---------------------------------------------+--------+
| {"status": "valid"} | {"reference": {"card": {"number": "4444"}}} | 1 |
| {"status": "valid"} | {"reference": {"card": {"number": "3321"}}} | 1 |
+-----------------------+---------------------------------------------+--------+
То, что я до сих пор.
SELECT * FROM table
WHERE "Auth" @> '{"status": "valid"}'
AND "UserId" = 1