J'utilise un logiciel domotique appelé OpenHAB, qui écrit des données dans une table comme ceci:Supprimer les doublons dans les tables MySQL basées sur le temps
http://sqlfiddle.com/#!9/5e35e4/1
+---------------------+-------+
| time | value |
+---------------------+-------+
| 2016-10-31 22:00:00 | 11.1 |
| 2016-10-31 22:07:08 | 10.8 |
| 2016-10-31 22:20:02 | 10.8 |
| 2016-10-31 22:30:28 | 10.8 |
| 2016-10-31 22:39:29 | 10.8 |
| 2016-10-31 22:44:04 | 10.8 |
| 2016-10-31 22:49:02 | 10.5 |
| 2016-10-31 23:00:00 | 10.5 |
| 2016-10-31 23:42:02 | 10 |
| 2016-11-01 00:00:00 | 10 |
| 2016-11-01 00:30:02 | 9.5 |
| 2016-11-01 01:00:00 | 9.5 |
| 2016-11-01 01:11:02 | 9.3 |
| 2016-11-01 01:22:02 | 9.1 |
Je suis maintenant aux prises avec le nettoyage ces valeurs, car il y a beaucoup de doublons (100k +) à partir du moment où j'ai commencé à utiliser OpenHAB et que je n'ai pas configuré correctement le système de journalisation.
Si la valeur (peut être de type double ou varchar) n'a pas changé dans plusieurs lignes consécutives, chaque ligne à l'exception du premier et du dernier doit être supprimée. Compte tenu de l'exemple ci-dessus, la sortie optimale ressemblerait à ceci:
+---------------------+-------+
| time | value |
+---------------------+-------+
| 2016-10-31 22:00:00 | 11.1 |
| 2016-10-31 22:07:08 | 10.8 | <-- only here
| 2016-10-31 22:44:04 | 10.8 |
| 2016-10-31 22:49:02 | 10.5 |
| 2016-10-31 23:00:00 | 10.5 |
| 2016-10-31 23:42:02 | 10 |
| 2016-11-01 00:00:00 | 10 |
| 2016-11-01 00:30:02 | 9.5 |
| 2016-11-01 01:00:00 | 9.5 |
| 2016-11-01 01:11:02 | 9.3 |
| 2016-11-01 01:22:02 | 9.1 |
Votre requête supprime les valeurs min/max dans la table. Par exemple il supprimerait ces entrées: 9 9 10 ** 10 ** ** 10 ** ** 10 ** 8 7 ** 10 ** 10 –
Hmm ... voici à quoi ressemble la table que vous avez postée après la requête que j'ai suggérée . Je suppose que ce n'est pas ce que tu voulais? Je lierai à un violon ... –
[Fiddle des résultats ici] (http://sqlfiddle.com/#!9/a55f90) –