Вот обходной путь, который заменяет существующую таблицу уникальными строками и недавними исходными строками.
CREATE OR REPLACE TABLE
`MainTable` AS
SELECT
id,
acctId,
appId,
createdAt,
startTime,
subAcctId,
type,
updatedAt,
userId
FROM (
SELECT
*,
ROW_NUMBER() OVER (PARTITION BY id ORDER BY updatedAt DESC -- the first row among duplicates will be kept, other rows will be removed
) RN
FROM
`MainTable`)
WHERE
RN = 1
Поскольку у нас нет возможности удалить конкретный столбец (rn), необходимо выбрать необходимые столбцы при замене существующей таблицы.
Надеюсь, это кому-нибудь поможет. Пожалуйста, поделитесь, если у вас есть какие-либо лучшие решения.