SQL Count Distinct en CoreData
Joanna Carter
Membre, Modérateur
Je veux récupérer le nombre de valeurs uniques d'un store CoreData
Le SQL serait : select count(distinct DAYNUMBER) as daynumbercount from EVENT
J'ai essayé :
let fetchRequest = CDEvent.fetchRequest() as NSFetchRequest<CDEvent>
fetchRequest.resultType = .dictionaryResultType
fetchRequest.propertiesToFetch = ["dayNumber"]
fetchRequest.returnsDistinctResults = true
do
{
let dayNumberCount = try moc.count(for: fetchRequest)
return dayNumberCount
}
catch
{
return 0
}
... mais ça me renvoie 59, qui est le nombre d'events, en place de 4, qui est le nombre de dayNumber uniques.
Des pistes ?
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Pour moi Le FetchRequest semble correct. C'est bizarre que ça te renvoi le nombre d'évènements. Peut-être que c'est le reste de l'implémentation qui est faux ?
D'après un post sur SO il semblerait que le DISTINCT ne soit pas inclut dans la requête en utilisant countForFetchRequest mais l'est bien en utilisant executeFetchRequest. Le post date un peu mais peut être est-ce toujours le cas.