• Jobs
  • About Us
  • professionals
    • Home
    • Jobs
    • Courses and challenges
  • business
    • Home
    • Post vacancy
    • Our process
    • Pricing
    • Assessments
    • Payroll
    • Blog
    • Sales
    • Salary Calculator

0

119
Views
¿Cómo fusionar dos filas json con identificaciones duplicadas y valores únicos en Snowflake?

Tengo que fusionar dos (o más de dos) filas JSON con los mismos identificadores, pero ambas filas tienen valores únicos. P.ej.

 create or replace table source(v variant); INSERT INTO source SELECT parse_json('{ "pd": { "extraction_date": "1644471240", "product_id": "357946", "retailerName": "retailer", "productName":"product" "unique1":"value" } }'); INSERT INTO source SELECT parse_json('{ "pd": { "extraction_date": "1644471242", "product_id": "357946", "retailerName": "retailer2", "productName":"product2", "unique2":"value" } }');

Mi resultado deseado es:

 "pd": { "extraction_date": "1644471240", "product_id": "357946", "retailerName": "retailer", "productName":"product", "unique1":"value", "unique2":"value" } }');

Revisé las documentaciones y StackOverflow, pero ninguna solución funciona para este caso. Que puede ser una solucion.

about 3 years ago · Juan Pablo Isaza
1 answers
Answer question

0

Una UDF de JavaScript como esta fusionará objetos como el de la pregunta:

 create or replace function merge_objects(X array) returns variant language javascript as $$ merged = {} X.forEach((item) => { keys = Object.keys(item['pd']); for (let i = 0; i < keys.length; i++) { merged[keys[i]] = item['pd'][keys[i]]; } }); return {'pd': merged}; $$

Luego puede usar ese UDF en SQL para realizar la combinación:

 select count(*) , merge_objects(array_agg(v) within group (order by v:pd.extraction_date desc)) from source group by v:pd.product_id;
about 3 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Our process Sales
Legal
Terms and conditions Privacy policy
© 2025 PeakU Inc. All Rights Reserved.

Andres GPT

Recommend me some offers
I have an error