android 通话记录去重查询方法

来源:互联网 发布:唱歌评分软件 编辑:程序博客网 时间:2024/06/06 14:24

近日研究通话记录 查询数据去重,一直在研究 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的数据。

原创粉丝点击