--- ÉDITÉ avec un commentaire correct de Shaido ---
Habituellement, GROUP BY
manipulerais cela, si l'ordre dans la table est irrelevent,
SQL est bon avec regroupement grande quantité de données connexes . Cependant, votre analyse dépend de l'ordre de saisie des données et le changement est déclenché par un changement dans une colonne qui peut être répété plus tard et ne peut pas être agrégé, alors que les autres colonnes peuvent continuer à changer.
Dans ce cas, vous devrez BOUGER sur vos données et détecter les changements manuellement, car SQL n'a pas un moyen facile de regrouper ce genre de choses. J'ai répondu un peu trop vite et je n'avais pas remarqué ça.
Ceci est mieux géré par une procédure stockée ou une langue d'affichage. Je peux vous donner le code en PHP si vous le souhaitez.
Une autre triche sera d'ajouter une colonne qui est utilisée par GROUP BY (appelons-le groubycheat
) qui augmente chaque fois que dtcode
change
SELECT MIN(Currentdatedtime) as Currentdatedtime, dtcode
FROM <tablename>
GROUP BY groupbycheat;
Cela nécessite encore une boucle pour ajouter le champ, mais si vous devez obtenir les résultats plusieurs fois, alors ça vaut le coup. Sinon ..no
Je suis d'accord avec Jacques Amar ci-dessous, la seule façon que je vois que vous pouvez résoudre ce problème est de boucler manuellement sur l'ensemble dataframe vous et vérifier si le 'dtcode' a changé ou non. Ce devrait être simplement pour faire le programme lui-même, mais ce ne sera pas très efficace. Si vous pouviez obtenir un identifiant unique pour chaque groupe, alors 'groupBy()' serait une alternative facile. – Shaido