Я пытаюсь создать новую таблицу из старой таблицы, чтобы я мог удалить некоторые дубликаты и реализовать составной первичный ключ.Я создал новую таблицу из старой, используя LIKE, поэтому столбцы должны быть идентичны.
Почему это не работает?
INSERT INTO PricesNEWtest (Global_MarketCap,pkey)
VALUES ((SELECT max(Global_MarketCap), pkey
FROM Prices GROUP BY pkey));
Произошла ошибка:
Код ошибки: 1136. Количество столбцов не соответствует значению в строке 1
В приведенном выше примере есть только две строки, поэтому он более читабелен, но на самом деле таблицы содержат 15 столбцов, это полный оператор INSERT INTO, который генерирует ту же ошибку:
INSERT INTO PricesNEWtest (Global_MarketCap,Global_Volume24h,BTC_Dominance,Rank,Name,
Symbol,ChangePerc24h,Price,BTC_Price,MarketCap,Volume24h,DateTime,Date,pkDummy,pkey)
VALUES ((SELECT max(Global_MarketCap), max(Global_Volume24h), max(BTC_Dominance), max(Rank), max(Name),
max(Symbol), max(ChangePerc24h), max(Price), max(BTC_Price), max(MarketCap), max(Volume24h),
max(DateTime), max(Date), max(pkDummy), pkey
FROM Prices GROUP BY pkey));
Я добавил двойные скобки дляЦЕННОСТИ потому что без него я получаю код ошибки 1064, но я не до конца понимаю, зачем нужны двойные скобки.Я группируюсь по полю pkey (в котором в настоящее время есть несколько дубликатов, которые я хочу удалить), что означает, что мне нужно суммировать остальные поля.Оператор SELECT прекрасно работает сам по себе, как вы можете видеть на скриншоте.Есть ли другой способ сделать это, что я мог бы попробовать?Или есть более простой способ удалить дубликаты прямо из исходной таблицы?Я использую MySQL 5.7.14
Буду признателен за любую помощь!