J'ai un événement tabel de 10 Go dans la base de données MYSQL. Cela fait partie du serveur d'applications Web. La connexion à cette base de données n'a pas été bien configurée auparavant, donc je dois faire un singe table 'événement' plus mince. Ce que je veux dire, c'est que j'ai des journaux de valeurs de points de données (lignes) et un horodatage de cette valeur. Je ne peux pas tout supprimer, je dois être capable de créer un graphique à partir des valeurs qui resteront dans cette table. C'est pourquoi je dois laisser quelques données représentatives. Une idée est de supprimer des lignes avec le même datapId quand ts diff est plus petit que X ou peut-être supposé être construit sur pointValues diff?Suppression de lignes dans MySQL à l'intérieur d'une table à l'aide de la condition d'horodatage
S'il vous plaît aidez-moi à construire une requête appropriée.
<!DOCTYPE html>
<html>
<head>
<style>
table, th, td {
border: 1px solid black;
}
</style>
</head>
<body>
<table>
<tr>
<th>id</th>
<th>datapId</th>
<th>dataType</th>
<th>pointValue</th>
<th>ts</th>
</tr>
<tr>
<td>1</td>
<td>5194</td>
<td>1</td>
<td>1</td>
<td>15060882793523</td>
</tr>
<tr>
<td>2</td>
<td>5194</td>
<td>1</td>
<td>1.1</td>
<td>15060882793524</td>
</tr>
<tr>
<td>3</td>
<td>5194</td>
<td>1</td>
<td>2.25</td>
<td>15060882793560</td>
</tr>
<tr>
<td>4</td>
<td>5194</td>
<td>1</td>
<td>2.23</td>
<td>15060882793590</td>
</tr>
<tr>
<td>5</td>
<td>5194</td>
<td>1</td>
<td>0</td>
<td>15060882793620</td>
</tr>
</table>
</body>
</html>
Enfin j'ai décidé de le faire de cette façon suivante, d'avoir moins de lignes, mais pour ne pas calculer la moyenne des données. J'ai énuméré tous les identifiants de point de données qui ont le plus de valeurs et je supprime tous les enregistrements pairs (basés sur des index autoincrémentés de table) de database.pointvalues où dataPointId = 'X' et (id% 2) = 0; – user4201838