Я использую PostgreSQL 10.4 и у меня 2 таблицы:
person:
CREATE TABLE person (
nationality character varying(100),
name character varying(100),
age integer
);
страна:
CREATE TABLE country (
demonym character varying(50),
name character varying(50)
);
Это запрос, который я пытаюсь выполнитьrun:
select "c"."name",
(SELECT row_to_json(r) FROM (
SELECT
COALESCE(sum(CASE WHEN p."nationality"='finn' THEN 1 ELSE 0 END),0) as "1",
COALESCE(sum(CASE WHEN p."nationality"='spanish' THEN 1 ELSE 0 END),0) as "2"
FROM "person" as p
WHERE "p"."nationality"="c"."demonym"
) as r) as "nationalitiesCount"
from "country" as c
WHERE 'nationalitiesCount'::json->'1' > 10
Это приводит к ошибке:
ОШИБКА: неверный синтаксис ввода для типа json
ЛИНИЯ 11: ГДЕ 'nationalitiesCount' :: json-> '1'> 10
ДЕТАЛИ: токен "nationalitiesCount" недействителен.
КОНТЕКСТ: данные JSON, строка 1: nationalitiesCount
Вторая строка содержитпервый '
выделен как код, вызывающий появление ошибки.
Вопрос: Как исправить ошибку?