SQL Count Distinct en CoreData

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 ?


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.


Connectez-vous ou Inscrivez-vous pour répondre.