Je regroupe des enregistrements en fonction de la proximité du temps. Ce que je fais en ce moment (horodatages unixtime),Un moyen efficace de séparer un groupe en enregistrements individuels
Tout d'abord je fais un sous sélection pour saisir des documents qui sont d'intérêt de moi,
(SELECT timestamp AS target_time FROM table WHERE something = cool) AS subselect
Je veux regarder les dossiers qui sont proches à temps à ceux-ci,
SELECT id FROM table, subselect WHERE ABS(target_time - timestamp) < 1800
Mais voici où j'ai frappé mon problème. Je veux seulement les disques où la différence de temps entre les enregistrements autour du target_time
est> 20 minutes. Pour ce faire, je grouper par target_time
et ajouter une section HAVING
.
SELECT id FROM table, first WHERE ABS(target_time - timestamp) < 3600
GROUP BY target_time HAVING MAX(timestamp) - MIN(timestamp) > 1200
Cela tombe bien, et tous les disques que je n'aime pas sont partis, mais maintenant je ne le premier id
du groupe, quand je veux vraiment tous les ids
. Je peux utiliser GROUP_CONCAT
mais cela me donne un désordre que je ne peux plus faire de requêtes. Ce que je voudrais vraiment obtenir tous les ids
retournés de tous ces groupes qui sont créés. Ai-je besoin d'une autre instruction SELECT
? Ou y a-t-il juste une meilleure façon de structurer ce que j'ai?
Merci,
Un code SQL.
Que voulez-vous exactement? Vous dites d'abord que vous voulez regrouper par intervalle de temps. Vous faites cela et ensuite vous vous plaignez que vous obtenez un seul enregistrement par groupe, ce qui est ce que le groupe est censé faire (et ce que vous avez d'abord dit que vous voulez). Donc, je suis un peu confus. – jira
Désolé, je suppose que ma question initiale a changé lorsque j'ai écrit le problème. Le vrai problème est que j'ai besoin de regrouper les enregistrements, afin d'utiliser des fonctions agrégées pour en supprimer certaines dont je n'ai pas besoin. Mais alors j'ai besoin de décomplexer? mes enregistrements afin que je puisse accéder aux identifiants individuellement. Et je ne connais pas la méthode la plus efficace pour cela. Je vais faire un montage rapide merci. –