subgrupo2json.sql 2.19 KB
SELECT json_build_object(
	'subgrupo',array(
		SELECT
			json_build_object(
			'id_n2', n2.id_n2,
			'nome', sub.nome_subgrupo,
			'temas',array_agg(
				json_build_object(
					'id_n3', t.id_tema,
					'nome_tema', t.nome_tema,
					'codigo_tema',t.codigo_tema
				)
			)
		)
		FROM
			public.i3geoadmin_n2 n2
			JOIN public.i3geoadmin_subgrupos sub ON n2.id_subgrupo = sub.id_subgrupo
			JOIN public.i3geoadmin_n3 n3 ON n2.id_n2 = n3.id_n2
			JOIN public.i3geoadmin_temas t ON t.id_tema = n3.id_tema
		WHERE
			id_n1 = 1068
		GROUP BY n2.id_n2,sub.nome_subgrupo
		ORDER BY
		sub.nome_subgrupo ASC
	)
)

Resultado:

{"subgrupo" : [{"id_n2" : 1321, "nome" : "UBS", "temas" : [{"id_n3" : 2237, "nome_tema" : "Obra em ação preparatória", "codigo_tema" : "obras_ubs_3"},{"id_n3" : 2236, "nome_tema" : "Obra concluída sem funcionamento", "codigo_tema" : "obras_ubs_1"},{"id_n3" : 2239, "nome_tema" : "Obra concluída em funcionamento", "codigo_tema" : "obras_ubs_7"},{"id_n3" : 2238, "nome_tema" : "Obra em andamento", "codigo_tema" : "obras_ubs_4"},{"id_n3" : 2236, "nome_tema" : "Obra concluída sem funcionamento", "codigo_tema" : "obras_ubs_1"}]},{"id_n2" : 1320, "nome" : "UPA", "temas" : [{"id_n3" : 2231, "nome_tema" : "Obra concluída sem funcionamento com $ de equipamento", "codigo_tema" : "obras_upa_2"},{"id_n3" : 2232, "nome_tema" : "Obra em ação preparatória", "codigo_tema" : "obras_upa_3"},{"id_n3" : 2233, "nome_tema" : "Obra em andamento", "codigo_tema" : "obras_upa_4"},{"id_n3" : 2234, "nome_tema" : "Obra em funcionamento habilitada em custeio", "codigo_tema" : "obras_upa_5"},{"id_n3" : 2250, "nome_tema" : "Obra civil concluída", "codigo_tema" : "obras_upa_4_"},{"id_n3" : 2235, "nome_tema" : "Obra em funcionamento não habilitada em custeio", "codigo_tema" : "obras_upa_6"},{"id_n3" : 2251, "nome_tema" : "Aguardando pagamento da 3a parcela", "codigo_tema" : "obras_upa_41"},{"id_n3" : 2252, "nome_tema" : "Aquisição de equipamentos e contratação de pessoas", "codigo_tema" : "obras_upa_42"},{"id_n3" : 2253, "nome_tema" : "Aguardando data para entrada em funcionamento", "codigo_tema" : "obras_upa_43"},{"id_n3" : 2230, "nome_tema" : "Obra concluída sem funcionamento", "codigo_tema" : "obras_upa_1"}]}]}