NSPnetworkingicate algo equivalente de GROUP BY BY de SQL

Para simplificar: hay 3 columnas en una tabla llamada tarjetas.

id packTitle term

id es una columna: integers desde 0 ….. 100

packTitle – cadena que describe los packages, digamos que hay 3 types de package PACK1, PACK2, PACK3

término – diferentes nombres sin clasificar de 101 artículos.

por statement de SQL

select packTitle from cards group by packTitle; 

Puedo get una list de 3 artículos.

¿Podría sugerir NSPnetworkingicate equivalente de la statement de SQL GROUP BY. Necesito get una matriz para poblar en UITableView.

CoreData es un marco de gestión de charts de objects, no un almacén de datos SQL. Por lo tanto, debería, lo más rápido posible, salir de la mentalidad de SQL. NSPnetworkingicate está diseñado como un pnetworkingicado NSPnetworkingicate sorpresivo- para los objects que califiquen en el gráfico de objects. Por lo tanto, puede get todos los objects que coinciden con una consulta, pero eso no es lo mismo que agrupar esos resultados. Si desea realizar operaciones agregadas, use los operadores de cobro de encoding Key-Value. Bajo el capo, Core Data puede convertir estos a SQL sensible, pero eso es exclusivamente un detalle de implementación.

En este caso, puede get el set de valores de packTitle de packTitle únicos con

 [myCards valueForKeyPath:@"@distinctUnionOfObjects.packTitle"]; 

que le proporcionará un set distinto de valores de packTitle de packTitle en la colección myCards . Si desea esto para todas las tarjetas en los almacenes Core Data, deberá ejecutar una consulta para todas las cards , luego aplicar esta operación de recostackción.

La alternativa es hacer una entidad PackInformation , o alguna que contenga una propiedad de title . A continuación, puede tener solo 3 de estas entidades en el almacén de datos, haciendo reference a ellas desde las entidades de package apropiadas. Es trivial search los tres (o lo que sea el número final) y get sus títulos.

Como otros han dicho, si lo que está tratando de hacer es informar fundamentalmente desde un set de datos relacionales, es mejor que vaya con SQLite directo. Todo depende de la cantidad de otros beneficios que obtenga de Core Data.

Suponiendo que esté usando CoreData … según la Documentación de Apple

No puede traducir necesariamente consultas SQL "arbitrarias" en pnetworkingicados o requestes de búsqueda. No hay forma, por ejemplo, de convertir una instrucción SQL como, por ejemplo,

 SELECT t1.name, V1, V2 FROM table1 t1 JOIN (SELECT t2.name AS V1, count(*) AS V2 FROM table2 t2 GROUP BY t2.name as V) on t1.name = V.V1 

en una request de recuperación. Debe search los objects de interés, luego realizar un cálculo directamente usando los resultados o usar un operador de matriz.

Si necesita realizar consultas complejas como esta, puede que sea mejor usar SQLite.