我需要在Azure移动服务中的基础SQLite存储上执行SUM。到目前为止,这似乎相当复杂..请看下面的帖子,任何参与者?
我的应用程序中有一个要求是将表中的列的所有值都为SUM并将结果返回给UI。我可以这样写SQL对SQLite,但在Azure App Services中使用同步表我只能看到ReadAsync,它接受OData语法而没有SUM的能力。有没有办法可以针对底层的SQLite存储运行定制查询?简而言之,我可以做' SELECT SUM(col)FROM table'?
根据您使用的语言,在代码中执行此操作相当容易。 JS有map()方法,而.NET有LINQ,例如。
感谢您的回复。我在Xamarin Forms中使用LINQ和.NET。我不想要检索所有行,你能提供一个简洁的例子,我可以做到这一点吗? ' SELECT SUM(col)FROM table'?在Azure App Services的上下文中?
var sum = table.Sum(t => t.Field);
我最初尝试过这种方式,但在移动服务中的SyncTable表(Microsoft.Azure.Mobile.Client)上没有方法Sum。我也使用System.Linq。我的环境是Xamarin Studio(使用Xamarin Forms)。
道歉:table.ToListAsync()。Sum(t => t.Field)。这是Stack Overflow的一个合适的问题,您将获得更广泛的社区帮助。
嗨Adrian,谢谢你的时间,但ToListAsync将带回所有记录,然后执行总和。生成的SQL是' SELECT * FROM Table' (我查了一下)。然后在完整列表上执行求和。这正是我试图不做的事情,因为我有成千上万的记录。我只是想执行一个' SELECT SUM(*)FROM Table'在底层商店没有撤回所有记录。可以这样做吗?