J'essaie de retourner un 1 pour la première fois de chaque valeur unique dans une colonne et de renvoyer un 0 pour chaque valeur de répétition après la première instance unique.
dans Excel, j'ai utilisé la formule ci-dessous, mais sur Une feuille plus grande devient instable. p>
3 Réponses :
Voici à sens unique:
SELECT IDPK, ID, DCount("*","TableName","ID='" & [ID] & "' AND IDPK<" & [IDPK])+1 AS U, IIf([U]=1,1,0) AS [Unique] FROM TableName ORDER BY IDPK;
En supposant que vous avez une clé primaire numérique modifier les deux occurrences de pk code>, vous devez donc donner le résultat souhaité:
Table1 code> au nom de votre table. p> p>
Extérieur Rejoignez la table à elle-même sur la colonne de regroupement ID code>, mais uniquement lorsque la clé primaire de la colonne jointe est supérieure à em> la clé primaire de la ligne principale. Ensuite, utilisez le fait qu'il n'y aura pas de colonne jointe pour la première instance (la plus faible principale_key) d'une valeur distincte
ID code> pour générer soit
1 code> ou
0 Code> en conséquence:
select
a.ID,
if(b.ID is null, 1, 0) as is_unique
from mytable a
left join mytable b on b.ID = a.ID
and b.primary_key > a.primary_key
order by a.primary_key
MS Access travaille avec des jeux de données non ordonnés. Par conséquent, vous devez d'abord définir un ordre de tri afin que vous puissiez définir sans ambiguïté ce qui constitue la "première instance". Votre table a-t-elle une clé primaire incrémentée par laquelle elle pourrait être triée, par exemple?
Oui je pouvais trier par clé primaire
Votre table a-t-elle
ID code> et une colonne de clé primaire distincte?