android 通话记录去重查询方法
16lz
2021-01-26
近日研究通话记录 查询数据去重,一直在研究 getContentResolver().query这个方法,对其中的几个参数也小研究了一下。
找到了通话记录去重的办法。 如果只取一列数据可以用distinct(number) as distinct_number ,
Cursor mCallLogCursor = getContentResolver().query(CallLog.Calls.CONTENT_URI, --------------URI
"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的数据。
更多相关文章
- Android(安卓)GreenDao数据库使用
- Android新特性-RecyclerView之基础篇
- Android黑群出品:SQLite数据库的使用和升级
- Android本地存储——SQLite数据库
- Android(安卓)Studio提高效率插件---adb idea
- Android中用onSaveInstanceState保存Fragment状态的方法
- Android记事本项目开发
- [Android(安卓)SQLite]数据存储与访问 - 内部存储
- android android.support.v4.util.Pools 源码解析