Jennifer Pip
Jennifer Pip

BigQuery Error: UPDATE/MERGE must match at most one source row for each target row

Twitter
LinkedIn

Using the SQL MERGE statement with BigQuery can be a huge boost to analytical transformation and data analysis processing but it does have a few gotchas. This error message “UPDATE/MERGE must match at most one source row for each target row” is typically seen when attempting the SQL MERGE statement into a target table and most often occurs when you have duplicate records in the source table you are using in the USING part of the MERGE statement.

One way to quickly assert what is going on in your data is to query the dataset/schema table looking for duplicate records. For example:

SELECT
  __ROW_MD5,
  COUNT(*)
FROM
  `SOURCE_DATASET.SOURCE_TABLE`
GROUP BY
  __ROW_MD5
HAVING
  COUNT(*) > 1 ;

The above SQL will do a basic check on the set of data in the table and identify if you have any rows with a count greater than one (1).

If that is the case then this is most likely the culprit to the UPDATE/MERGE must match at most one source row for each target row issue. Remove the duplicate records in the source table by adjusting your process or data accordingly and it should resolve your issue.

Feel free to read up other details about the SQL MERGE statement in BigQuery.

More to explorer

View Security in Snowflake

Often the question arises on how can Snowflake customers secure their data at a row level, or by organization, or by some

Scroll to Top