Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Scal, a następnie usuń zduplikowane wpisy

Nie sądzę, że można to zrobić efektywnie w SQL. Jednym powolnym sposobem na zrobienie tego jest coś takiego:

CREATE TEMPORARY TABLE tmp_table (...);
INSERT INTO tmp_table SELECT phone, max(rating) FROM table GROUP BY phone;
TRUNCATE table;
INSERT INTO table SELECT * FROM tmp_table;

Lepszym sposobem byłaby procedura składowana lub skrypt zewnętrzny. Wybierz wszystkie wiersze z tabeli uporządkowane według phone i wykonaj grupowanie/scalanie/usuwanie ręcznie (przejrzyj wyniki, porównaj z phone wartość z poprzedniego wiersza, jeśli jest inna, masz nową grupę itp.). Pisanie procedur składowanych w MySQL jest jednak bolesne, więc nie zamierzam pisać kodu za Ciebie. :)



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dynamiczne tworzenie mysql wybierz Zapytanie

  2. BŁĄD:Nie udało się zbudować natywnego rozszerzenia gem (mysql2 na szynach 3.2.3)

  3. Uzyskaj całkowitą liczbę wierszy, gdy używasz LIMIT?

  4. mysqldump błąd:pakiet większy niż max_allowed_packet'

  5. Eksportuj dane z MySQL do Excela z kodowaniem UTF-8