0
votes

Accès: Comptez la première instance de chaque valeur unique dans une colonne

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. xxx


3 commentaires

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 et une colonne de clé primaire distincte?


3 Réponses :


0
votes

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;


0 commentaires

0
votes

En supposant que vous avez une clé primaire numérique pk , vous devez donc donner le résultat souhaité: xxx

modifier les deux occurrences de Table1 au nom de votre table.


0 commentaires

0
votes

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


0 commentaires