la suppression de doublons ligne avec pas d'identificateur unique

J'ai des données dans une table qui ressemble à peu près comme suit:

table stockData
(
tickId int not null,
timestamp datetime not null,
price decimal(18,5) not null
)

Ni tickId ni d'horodatage sont uniques, cependant, la combinaison de tickId et timestamp est censé être unique.

J'ai quelques dupliquer les données dans ma table, et je suis tente de le supprimer. Cependant, je suis venue à la conclusion qu'il n'y a pas assez d'informations avec les données fournies pour moi à discerner une ligne de l'autre, et fondamentalement aucun moyen pour moi de supprimer l'une des lignes en double. Ma conjecture est que j'ai besoin d'introduire une sorte de colonne d'identité, qui pourrait m'aider à identifier une ligne de l'autre.

Est-ce correct, ou est-il une manière magique de la suppression d'un, mais pas les deux en double des données avec une requête?

MODIFIER Modifié afin de préciser que tickId et timestamp liste déroulante doit être unique, mais il n'est pas en raison de la duplication des données.

Juste une idée, je ne sais pas si ça marche ou si il va supprimer: SUPPRIMER DE stackData OÙ tickId DANS (SÉLECTIONNEZ tickId DE stackData);
À partir de SQL Server 2005 est une manière magique pour supprimer un seul des doublons. Quelle version de SQL server utilisez-vous? Après avoir corrigé les dupliquer le problème, vous devez ajouter une contrainte de clé primaire de la table.
Merci Mikael, je suis à l'aide de SQL Server 2005. J'avais une contrainte unique, toutefois, j'ai été la consolidation des données provenant de plusieurs tables dans une seule table, et ces tables avaient données en double. J'ai pensé que le moyen le plus facile a été de vider tout dans un seul tableau, supprimer les doublons, puis ajouter la contrainte après.
La "magie de requête" est fourni par Sergey.

OriginalL'auteur steve8918 | 2012-03-25