近日研究通话记录 查询数据去重,一直在研究 getContentResolver().query这个方法,对其中的几个参数也小研究了一下。

找到了通话记录去重的办法。 如果只取一列数据可以用distinct(number) as distinct_number ,

Cursor mCallLogCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, --------------URI

new String[]{"max(date) as max_date",CallLog.Calls.NUMBER,CallLog.Calls.DURATION,CallLog.Calls.TYPE},----------------PROJECTION

"1=1) group by(number", ----------------SELECTION

null, -----------------SELECTIONARG

CallLog.Calls.DEFAULT_SORT_ORDER);----------------SORTORDER

上面的语句还原成SQL语句,如下句所示。

SELECT max(date) as max_date, number, duration,type FROM calls WHERE (1=1) group by(number) ORDER BY date DESC


实现了通话记录的去重和查询的功能(去重是把时间靠前的通话记录去掉)


个人理解SQL语句执行,是SELECT 数据 从 表的grop里选出max的数据。

更多相关文章

  1. Android(安卓)GreenDao数据库使用
  2. Android新特性-RecyclerView之基础篇
  3. Android黑群出品:SQLite数据库的使用和升级
  4. Android本地存储——SQLite数据库
  5. Android(安卓)Studio提高效率插件---adb idea
  6. Android中用onSaveInstanceState保存Fragment状态的方法
  7. Android记事本项目开发
  8. [Android(安卓)SQLite]数据存储与访问 - 内部存储
  9. android android.support.v4.util.Pools 源码解析

随机推荐

  1. Python学习手册(第四版)学习笔记(二)我学Pyth
  2. python 按位置关系输出矩阵元素
  3. 基础入门_Python-进线协程.分分钟玩转mul
  4. python 函数、参数及参数解构
  5. 具有1位条目的numpy布尔数组
  6. Python------类的结构细分,异常处理,方法
  7. cocos2d-3.2+python+NDK搭建游戏开发环境
  8. python小练习,利用dict,做一个简单的登录
  9. Python中字符大小写的问题
  10. python编程之一:使用网格索引算法进行空间