WebHU - Programozási kérdések és válaszok

A legközelebbi földrajzi pont megkeresése két BigQuery-tábla között

Van két táblázatom szélességi és hosszúsági pontokkal. Szeretnék létrehozni egy új táblát, amely mindkét táblából tartalmaz információkat a táblák közötti legközelebbi pontok megtalálása alapján. Ez hasonló egy korábban feltett kérdéshez ; azonban az egyik táblában vannak tömbök. Úgy tűnt, hogy a korábban feltett kérdés megoldása nem működik tömbökkel.

A táblázat

|--------|-------------|-------------|-------------|
|   id   |  latitude   |  longitude  |   address   |
|--------|-------------|-------------|-------------|
|   1    |     39.79   |     86.03   | 123 Vine St |
|--------|-------------|-------------|-------------|
|   2    |     39.89   |     84.01   | 123 Oak St  |
|--------|-------------|-------------|-------------|

B táblázat

|-------------|-------------|-------------|--------------|
|  latitude   |  longitude  |  parameter1 |  parameter2  |
|-------------|-------------|-------------|--------------|
|     39.74   |     86.33   |  [1, 2, 3]  | [.1, .2, .3] |
|-------------|-------------|-------------|--------------|
|     39.81   |     83.90   |  [4, 5, 6]  | [.4, .5, .6] |
|-------------|-------------|-------------|--------------|

Szeretnék létrehozni egy új táblát, a C táblát, amely tartalmazza az A TÁBLÁZAT összes sorát, és hozzáadja a B táblázatból származó információkat. A B táblázat információi a B táblázatban lévő legközelebbi pont alapján kerülnek hozzáadásra az A táblázat adott sorához. .

C. táblázat

|------|-------------|-------------|--------------|
| id_A |   address   |  parameter1 |  parameter2  |
|------|-------------|-------------|--------------|
|  1   | 123 Vine St |  [1, 2, 3]  | [.1, .2, .3] |
|------|-------------|-------------|--------------|
|  2   |  123 Oak St |  [4, 5, 6]  | [.4, .5, .6] |
|------|-------------|-------------|--------------|

Előre is köszönöm!

24.06.2020

Válaszok:


1

Az alábbiakban a BigQuery Standard SQL-re vonatkozik

#standardSQL
SELECT AS VALUE 
  ARRAY_AGG(STRUCT(id, address, parameter1, parameter2) ORDER BY ST_DISTANCE(a.point, b.point) LIMIT 1)[OFFSET(0)]
FROM (SELECT *, ST_GEOGPOINT(longitude, latitude) point FROM `project.dataset.tableA`) a,
(SELECT *, ST_GEOGPOINT(longitude, latitude) point FROM `project.dataset.tableB`) b
GROUP BY id

Ha alkalmazni kell a kérdéséből származó mintaadatokra

WITH `project.dataset.tableA` AS (
  SELECT 1 id, 39.79 latitude, 86.03 longitude, '123 Vine St' address UNION ALL
  SELECT 2, 39.89, 84.01, '123 Oak St' 
), `project.dataset.tableB` AS (
  SELECT 39.74 latitude, 86.33 longitude, [1, 2, 3] parameter1, [.1, .2, .3] parameter2 UNION ALL
  SELECT 39.81, 83.90, [4, 5, 6], [.4, .5, .6] 
)

kimenet az

ide írja be a kép leírását

24.06.2020
Új anyagok

A rádiógomb ellenőrzött eseményének használata a jQueryben
Ebben a cikkben látni fogjuk, hogyan kell dolgozni a jquery választógombbal ellenőrzött eseményeivel. A választógombok HTML gombok, amelyek segítenek kiválasztani egyetlen értéket egy csoportból...

Körkörös függőségek megoldása terraformban adatforrásokkal – lépésről lépésre
Mi az a körkörös függőségek Dolgozzunk egy egyszerű eseten, amikor az SQS-sor és az S3-vödör közötti körkörös függőség problémája van egy egymástól függő címkeérték miatt. provider..

Miért érdemes elkezdeni a kódolást 2023-ban?
01100011 01101111 01100100 01100101 — beep boop beep boop Világunk folyamatosan fejlődik a technológia körül, és naponta fejlesztenek új technológiákat a valós problémák megoldására. Amint..

🎙 Random Noise #2  – Örökbefogadás és hit
az analitika íratlan világának gondozása Szeretné, hogy ezek a frissítések a postaládájába kerüljenek? Iratkozzon fel itt . "Ha önvezető autókat gyártanak, akkor mi miért ne..

A legrosszabb politika és prediktív modellek májátültetésre jelöltek számára az Egyesült Államokban
A máj (vagy óangolul lifer) az emberi test legnehezebb belső szervére utal, amely csendesen működik a nap 24 órájában. Mit csinál a máj? 500 feladatot hajt végre a szervezet egészségének..

5 webhely, amely 2022-ben fejleszti front-end fejlesztői készségeit
Frontendmentor.io A tényleges projektek létrehozásával a Frontendmentor.io segítséget nyújt a front-end kódolási képességeinek fejlesztésében. A kódolást azután kezdheti meg, hogy..

Mikor kell használni a Type-t az interfészhez képest a TypeScriptben?
A TypeScript a JavaScript gépelt szuperkészlete, amely statikus gépelést ad a nyelvhez. Ez megkönnyíti a robusztus és karbantartható kód írását azáltal, hogy a hibákat a fordítási időben..