J'ai un ensemble de tables dans SQL Server 2005 qui contient des données de timesérie. Il y a donc un champ datetime et un ensemble de valeurs.Utilisation de t-sql pour sélectionner un dataset avec des valeurs dupliquées supprimées
CREATE TABLE [dbo].[raw_data](
[Time] [datetime] NULL,
[field1] [float] NULL,
[field2] [float] NULL,
[field3] [float] NULL
)
Le champ datetime est malheureusement pas une clé unique, et il semble y avoir beaucoup de valeurs datetime avec de multiples entrées (non identiques) - d'où DISTINCT ne fonctionne pas.
Je souhaite sélectionner les données de ces tables pour les insérer dans une nouvelle table correctement indexée.
Par conséquent, je veux une requête de sélection qui retournera un ensemble de données avec une entrée de ligne unique pour chaque fois. Je ne suis pas concerné quel ensemble de valeurs est choisi pour un temps donné, tant qu'un (et un seul) est choisi.
Il y a beaucoup de ces tables, donc je n'ai pas le temps de trouver et de purger manuellement les valeurs dupliquées, donc une requête HAVING COUNT (*)> 1 standard n'est pas applicable. Il y a aussi trop de doublons pour simplement ignorer complètement ces valeurs de temps.
Des idées? Je pensais à une sorte de curseur basé sur PARTITION BY, mais je suis resté coincé au-delà de ce point.
Si vous voulez un t-sql base vous pouvez utiliser: sélectionnez T. * de dbo.rawdata comme T, (sélectionner l'heure, min (filed1) comme C de dbo.rawdata groupe par le temps) comme Ta où t.time = ta.time et t.field1 = ta.field1 – Ice