Вы уверены, что хотите MERGE? Похоже, вы действительно хотите
INSERT INTO m2( k, v, knt )
SELECT k, v, count(*)
FROM m1
GROUP BY k, v
MERGE - операция, основанная на множестве. Данные в M2 оцениваются во время выполнения запроса, поэтому ваше предложение USING
не будет видеть строки, вставляемые как часть MERGE
. Поскольку предложение USING
возвращает 0 строк, все данные из M1
будут вставлены в M2
. Предложение WHEN MATCHED
никогда не будет запущено.