我有一个表(Transactions),其中包含包含Account_name和交易金额的记录。我想计算每个帐户的所有交易的总数,这些交易以“私人”开头且交易金额>1000。我想按名称降序排列这些帐户。
因此,SQL请求将如下所示:
SELECT Account_name, SUM(Amount)
FROM Transactions
WHERE Account_name like 'Private%'
and Amount > 1000
GROUP BY Account_name
ORDER BY Account_name DESC
我将如何在Swift中使用Core-DATA做到这一点。
谢谢
请记住,CoreData不是关系数据库,因此您应该考虑的实体不是“表”,而对象不是“记录”。还要注意,按照惯例,属性名称不应以大写字母开头。也就是说,可以构造访存来实现所需的功能。关键步骤是:
NSPredicate
根据您选择的条件进行过滤resultType
为.DictionaryResultType
(“分组依据”所必需)NSExpression
和NSExpressionDescription
)。NSSortDescriptor
按名称创建按顺序排序,降序请参见以下代码:
let fetch = NSFetchRequest(entityName: "Transaction")
let predicate = NSPredicate(format: "Account_name like %@ AND Amount > %@", "Private*",NSNumber(double: 1000.0))
fetch.predicate = predicate
fetch.resultType = .DictionaryResultType
let sumExpression = NSExpression(format: "sum:(Amount)")
let sumED = NSExpressionDescription()
sumED.expression = sumExpression
sumED.name = "sumOfAmount"
sumED.expressionResultType = .DoubleAttributeType
fetch.propertiesToFetch = ["Account_name", sumED]
fetch.propertiesToGroupBy = ["Account_name"]
let sort = NSSortDescriptor(key: "Account_name", ascending: false)
fetch.sortDescriptors = [sort]
let results = managedObjectContext?.executeFetchRequest(fetch, error: nil) as NSArray?
结果将是带有键“ Account_name”和“ sumOfAmount”的字典数组。
编辑 要提取特定Account_name的值,请使用另一个谓词:
let newPredicate = NSPredicate(format: "Account_name like %@", "toto")!
if let resultsArray = results { // to unwrap the optional
let filteredResults = resultsArray.filteredArrayUsingPredicate(newPredicate)
let sumOfAmount = (filteredResults[0] as NSDictionary)["sumOfAmount"] as Double
}
我忽略了前面的示例过滤Account_name
到以“ Private”开头的那些事实,并假设您将拥有一个(只有一个)名称为“
toto”的帐户(因此filteredResults[0]
);您的生产代码应检查。
问题内容: 这是我使用的代码 我试图在客户表中的TotalP字段中设置一个值x。值x等于“产品”表中“客户ID”相同的对应价格的总和。 上面的代码返回错误 问题答案: 您可以使用DSum: 但是,这确实引发了一个问题,即当可以从查询中获取信息时,为什么要使用计算值来更新表。
如官方文档中所述,Cosmos Db SQL API支持聚合函数。然而,我找不到任何对项的多级文档结构执行聚合的良好查询示例。这是我的Cosmos DB容器项的结构。我正在使用SQL API } 我想得到发票明细的总和。使用SQL查询的lineTotal。非常感谢您的回答
问题内容: 我想按数量加载最畅销的产品。这些是我的表: 这是我的Spring Data Repository: 我正在获取 HsqlException:找不到列:id 我认为此错误与id列无关,因为这两个表都存在。“按汇总查询”可用于Spring数据吗?因为对于Spring Data应该仅从数据库中选择产品属性,这对我来说似乎并不奇怪,并且使用此sql我们还选择了sum(po.quantity)。
问题内容: 我在iBooks中阅读了Apple的The Programming Language Swift ,但无法弄清楚如何在Swift中发出HTTP请求(例如cURL)。我需要导入Obj- C类还是只需要导入默认库?还是无法基于本机Swift代码发出HTTP请求? 问题答案: 您可以使用,而且还是因为你通常在Objective- C做。请注意,对于iOS 7.0和更高版本,它是首选。 使用
我在iBooks上读过Apple的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似于cURL)。我需要导入Obj-C类还是只需要导入默认库?或者不可能基于本机Swift代码发出HTTP请求?
我在iBooks中阅读了苹果公司的编程语言Swift,但不知道如何在Swift中发出HTTP请求(类似cURL的东西)。我需要导入Obj-C类还是只需要导入默认库?还是不能基于原生Swift代码进行HTTP请求?