Gabriel,

It looks like *function_certainty *and *place_function *are on the same 
tile/card (Heritage Place Function Assignment). This means that you only 
need to join to that tile once.


SELECT row_number() OVER () AS gid,
    tv1.tileid,
    tv1.resourceinstanceid,
    tv1.nodeid,
    tv1.geom,
    name_tile.tiledata ->> '34cfe9dd-c2c0-11ea-9026-02e7594ce0a0'::text AS 
name,
    btrim(btrim(btrim(country_tile.tiledata ->> 
'34cfea43-c2c0-11ea-9026-02e7594ce0a0'::text, '['::text), ']'::text), 
'"'::text) AS country,
    eamenaid_tile.tiledata ->> '34cfe992-c2c0-11ea-9026-02e7594ce0a0'::text 
AS eamena_id,
    btrim(btrim(btrim(*func_assignment_tile*.tiledata ->> 
'34cfea4a-c2c0-11ea-9026-02e7594ce0a0'::text, '['::text), ']'::text), 
'"'::text) AS place_function,
    jsonb_array_elements(resourceid_tile.tiledata -> 
'34cfea8a-c2c0-11ea-9026-02e7594ce0a0'::text) ->> 'resourceId'::text AS 
resourceid,
    *func_assignment_tile*.tiledata ->> 
'34cfea7d-c2c0-11ea-9026-02e7594ce0a0'::text AS function_certainty
   FROM test_view_1 tv1
     LEFT JOIN tiles *func_assignment_tile *ON tv1.resourceinstanceid = 
func_assignment_tile.resourceinstanceid -- < JOIN ONCE - 
replaces funxcertainty_tile and purpose_tile 
     LEFT JOIN tiles resourceid_tile ON tv1.resourceinstanceid = 
resourceid_tile.resourceinstanceid
     LEFT JOIN tiles eamenaid_tile ON tv1.resourceinstanceid = 
eamenaid_tile.resourceinstanceid
     LEFT JOIN tiles country_tile ON tv1.resourceinstanceid = 
country_tile.resourceinstanceid
     LEFT JOIN tiles name_tile ON tv1.resourceinstanceid = 
name_tile.resourceinstanceid
  WHERE (country_tile.tiledata ->> 
'34cfea43-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
  AND (name_tile.tiledata ->> '34cfe9dd-c2c0-11ea-9026-02e7594ce0a0'::text) 
IS NOT NULL 
  AND (eamenaid_tile.tiledata ->> 
'34cfe992-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
  AND (*func_assignment_tile*.tiledata ->> 
'34cfea4a-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL -- < 
place_function
  AND (*func_assignment_tile*.tiledata -> 
'34cfea7d-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL; -- < 
function_certainty

I've not been able to try this as I don't have your model. I've only been 
able to go on the picture.

Thanks
Andy

On Tuesday, October 13, 2020 at 8:46:48 AM UTC+1 [email protected] 
wrote:

> Thanks for your answer,
>
> this is the SQL to generate first view which answer the UUIDS:
>
> SELECT row_number() OVER () AS gid,
>     tv1.tileid,
>     tv1.resourceinstanceid,
>     tv1.nodeid,
>     tv1.geom,
>     name_tile.tiledata ->> '34cfe9dd-c2c0-11ea-9026-02e7594ce0a0'::text AS 
> name,
>     btrim(btrim(btrim(country_tile.tiledata ->> 
> '34cfea43-c2c0-11ea-9026-02e7594ce0a0'::text, '['::text), ']'::text), 
> '"'::text) AS country,
>     eamenaid_tile.tiledata ->> 
> '34cfe992-c2c0-11ea-9026-02e7594ce0a0'::text AS eamena_id,
>     btrim(btrim(btrim(purpose_tile.tiledata ->> 
> '34cfea4a-c2c0-11ea-9026-02e7594ce0a0'::text, '['::text), ']'::text), 
> '"'::text) AS place_function,
>     jsonb_array_elements(resourceid_tile.tiledata -> 
> '34cfea8a-c2c0-11ea-9026-02e7594ce0a0'::text) ->> 'resourceId'::text AS 
> resourceid,
>     funxcertainty_tile.tiledata ->> 
> '34cfea7d-c2c0-11ea-9026-02e7594ce0a0'::text AS function_certainty
>    FROM test_view_1 tv1
>      LEFT JOIN tiles funxcertainty_tile ON tv1.resourceinstanceid = 
> funxcertainty_tile.resourceinstanceid
>      LEFT JOIN tiles resourceid_tile ON tv1.resourceinstanceid = 
> resourceid_tile.resourceinstanceid
>      LEFT JOIN tiles eamenaid_tile ON tv1.resourceinstanceid = 
> eamenaid_tile.resourceinstanceid
>      LEFT JOIN tiles country_tile ON tv1.resourceinstanceid = 
> country_tile.resourceinstanceid
>      LEFT JOIN tiles name_tile ON tv1.resourceinstanceid = 
> name_tile.resourceinstanceid
>      LEFT JOIN tiles purpose_tile ON tv1.resourceinstanceid = 
> purpose_tile.resourceinstanceid
>   WHERE (country_tile.tiledata ->> 
> '34cfea43-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
>   AND (name_tile.tiledata ->> 
> '34cfe9dd-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
>   AND (eamenaid_tile.tiledata ->> 
> '34cfe992-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
>   AND (purpose_tile.tiledata ->> 
> '34cfea4a-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL 
>   AND (funxcertainty_tile.tiledata -> 
> '34cfea7d-c2c0-11ea-9026-02e7594ce0a0'::text) IS NOT NULL;
>
>
>
> And thsi one to display the values:
>  SELECT row_number() OVER () AS gid,
>     tv2.geom,
>     tv2.name,
>     country.value AS country,
>     tv2.eamena_id,
>     purpose.value AS place_function,
>     funxcertainty.value AS function_certainty
>    FROM test_view_2 tv2
>      LEFT JOIN "values" funxcertainty ON tv2.function_certainty = 
> funxcertainty.valueid::text
>      LEFT JOIN "values" country ON tv2.country = country.valueid::text
>      LEFT JOIN "values" purpose ON tv2.place_function = 
> purpose.valueid::text;
>
>
> Thanks in advance for any tip and help provided.
>
> Best regards,
>
>
>
>
> On Monday, 12 October 2020 at 11:05:57 UTC+1 
> [email protected] wrote:
>
>> Post your SQL here and we can take a look. I suspect that the way you are 
>> joining things means you are creating view containing all variations across 
>> tiles rather than per tile.
>>
>> On Friday, October 9, 2020 at 10:54:16 AM UTC+1 [email protected] 
>> wrote:
>>
>>> Hello,
>>>
>>> I have found this issue when exporting form arches to postgresql and 
>>> creating views.
>>>
>>> I have created a feature and one of the fields has multiple 
>>> characteristic:
>>>
>>> So at e the same time can be different utilities and the certainty can 
>>> vary (defensive - High, domestic - low and fishing - negligible) as example.
>>>
>>> [image: Screenshot from 2020-10-09 10-08-05.png]
>>>
>>>
>>> but what I get when creating the view and running the queries is that 
>>> create a domestic low high and negligible, a fortification low high and 
>>> negligible and a hunting high, low and negligible for the same feature:
>>>
>>> [image: Screenshot from 2020-10-09 10-10-03.png]
>>>
>>> Do someone know why is this happening and how can be resolved this 
>>> issue? 
>>>
>>> Thank you very much in advance
>>>
>>>
>>>
>>>
>>>

-- 
-- To post, send email to [email protected]. To unsubscribe, send 
email to [email protected]. For more information, 
visit https://groups.google.com/d/forum/archesproject?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Arches Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/archesproject/89f55a31-8502-4f5d-937a-ee2c39221f04n%40googlegroups.com.

Reply via email to