【问题标题】:how to sqlite query to core data如何对核心数据进行sqlite查询
【发布时间】:2013-06-05 20:03:44
【问题描述】:

如何将以下 sqlite 查询转换为核心数据

select name, firstname, class, telephone, entryDateTime, counselor, count() 
  from myTable 
  group by strftime('yy-mm-dd', entryDateTime), name, class, counselor 
  order by entryDateTime desc;

what did i try?

我想按日期(yy-mm-dd)、班级、辅导员和姓名进行分组。 entryDateTime 为 UTC,但应转换为本地时间。

提前致谢

【问题讨论】:

    标签: iphone core-data nsfetchedresultscontroller nsfetchrequest


    【解决方案1】:

    类似“group by”的查询最灵活的方法是NSFetchedResultsController。请查看我几天前的answer,这应该对您有所帮助。

    要解决基于多个属性的子分组问题,您只需将sectionNameKeyPath 用作子组,并在获取后从那里进行另一个分组。

    或者,考虑将您需要的属性放入不同的实体并按该实体分组。

    【讨论】:

    • 我已经看到你的答案了。我需要对多个属性进行分组并使用计数聚合。我不会使用部分。但我应该按多个属性进行计数和分组,并按日期(yy-mm-dd)对 desc 进行排序。我怎样才能用 nsfetchcontroller 实现呢?
    • 您可以按第一个属性(日期)分组,然后在需要时处理子分组。我还在我编辑的答案中提出了另一种选择。
    • 嗯,我正在考虑使用 yy-mm-dd 的瞬态属性的 date 的 sectionNameKeyPath。但我想知道如何对该结果进行分组和计算其他属性。有什么线索吗?
    • 一个有趣的途径是探索使用NSDictionaryResultType 获取请求的选项,并尝试使用请求的propertiesToGroupBy 属性调整谓词。为NSExpressionNSExpressionDescription 和类似的冗长 API 做好准备。
    • 如果您检查了我的问题中的链接。我在那条路上。将日期从 UTC 转换为本地阻止了整个过程。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-15
    • 2013-04-21
    • 2014-09-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多