Tengo un modelo 'Plumas' y tiene tales propiedades: "Nombre del fabricante" y "Recuento". ¿Cómo puedo obtener la suma de todo 'Count'? ¿Puede Core Data contar eso para mí? Gracias ...iPhone: Datos principales, Cómo obtener la suma de los valores de db
Respuesta
Hay dos maneras de resolver este problema:
primera - obtener sus datos a NSSet o NSArray y utilizar el operador @Sum:
//assume that `pens` are NSArray of Pen
NSNumber *countSum=[pens valueForKeyPath:"@sum.count"];
segundo se ha podido recuperar mediante medios específicos con for specific value añadido NSExpressionDescription con una suma. De esta manera es más difícil pero mejor para db's más grandes
Sí, puede obtenerlos de los datos centrales, en lugar de obtener y evaluar los resultados. Puede realizar funciones como sum en los datos centrales mediante el uso de NSExpression.
NSExpression *keyPathExpression = [NSExpression expressionForKeyPath:@"Count"];
NSExpression *sumOfCountExpression = [NSExpression expressionForFunction:@"sum:"
arguments:[NSArray arrayWithObject:keyPathExpression]];
Para obtener una lista de las funciones que se pueden utilizar ir aquí
Luego necesita crear un objeto NSExpressionDescription donde establece la expresión tho la sumOfCountExpression que acaba de crear.
NSExpressionDescription *expressionDescription = [[NSExpressionDescription alloc] init];
[expressionDescription setName:@"sumOfCount"];
[expressionDescription setExpression:sumOfCountExpression];
[expressionDescription setExpressionResultType:NSDoubleAttributeType];
Luego construya sus solicitudes como lo haría normalmente y luego configure la propiedad para recuperar esa expresión.
[request setPropertiesToFetch:[NSArray arrayWithObject:expressionDescription]];
Consulte: Core Data Programming Guide
Vale la pena señalar que debe establecer el ResultType en NSFetchRequest para que sea NSDictionaryResultType, y que el valor devuelto se encuentre en el diccionario devuelto con la clave 'sumOfCount' o lo que establezca en setName encima. –
@ScottAllen: ¡Gracias! Eso fue estrepitoso y me volvió loco, ¡y esta es la segunda descripción de cómo hacer esto que he visto que omite este pequeño detalle importante! –
- 1. Datos principales de iPhone insertando objetos nuevos
- 2. iPhone - dividiendo los datos principales en secciones con NSFetchResultsController
- 3. iPhone - Agregar datos principales al proyecto existente?
- 4. extracción suma de los datos de XML en SQL
- 5. principales valores del diccionario
- 6. Drupal - Cómo obtener la SUMA de filas
- 7. Datos principales en Android
- 8. Agregar datos principales a una aplicación de iPhone existente
- 9. ¿Cómo obtener la suma de todos los valores de columna en la última fila de un conjunto de resultados?
- 10. Datos principales: Obtener todas las entidades
- 11. Tabla dinámica para mostrar los valores, no la suma de los valores
- 12. Datos principales: Copia de seguridad en Google App Engine (iPhone)
- 13. Esta restricción no se puede habilitar porque no todos los valores tienen los valores principales correspondientes
- 14. obtener la suma de los tipos de datos TIEMPO (MSSQL08) de una tabla
- 15. Campo suma de SQL cuando los valores de columna coinciden
- 16. HierarchyID Cómo obtener todos los elementos principales de un hijo
- 17. ¿Cómo puedo obtener la suma de múltiples valores de fecha y hora?
- 18. suma de datos básicos en la relación
- 19. mínima de suma de valores absolutos
- 20. ¿Cómo obtener los mismos valores de HashMap?
- 21. Datos principales: cómo generar CoreDataGeneratedAccessors?
- 22. Suma valores anidados con Linq
- 23. datos principales en una biblioteca estática para el iPhone
- 24. Qué tienda persistente se usa de manera predeterminada en los datos principales en iPhone
- 25. Linq obtener suma de grupo de datos por fecha
- 26. ¿Cuáles son los principales inconvenientes de usar OpenOffice DB frente a Microsoft Access?
- 27. SQL de actualización a la suma de sus valores unidas
- 28. ¿Cómo transferir los datos de mi DB de producción a mi DB de ensayo en heroku?
- 29. Clave primaria de datos principales
- 30. iPhone y datos principales: ¿se ha eliminado NSManagedObject?
Grate, me gusta primera forma. ¿Y qué pasa si las plumas tienen una propiedad más 'Color' y quiero contar la suma de plumas rojas? – Jim
Simplemente construya una matriz solo con bolígrafos rojos usando NSPredicate, y resuma esta matriz. –
Muchas gracias ... – Jim