Android Sqlite 根据日期列删除最旧的重复结果
Posted
技术标签:
【中文标题】Android Sqlite 根据日期列删除最旧的重复结果【英文标题】:Android Sqlite remove oldest duplicate results based on date column 【发布时间】:2021-12-06 21:34:30 【问题描述】:我有一个 android Sqlite 数据库,我正在尝试按 RANK 编号选择前 1000 行,因为 RANK 总是在变化我有时会得到具有相同 RANK 编号的重复行,我想做的只是保留包含基于其 CREATED_DATE 的最新 RANK 的重复行,我将在下面直观地显示:
id rank created_date
1 1 1/1/2014
2 2 1/1/2021
3 3 1/1/2021
4 1 1/1/2021
我想要的输出是:
id rank created_date
2 2 1/1/2021
3 3 1/1/2021
4 1 1/1/2021
我当前的代码接近但不会根据 CREATED_DATE 删除重复的 RANK,而是根据我不想要的 ID 删除它们,并且我无法在 CREATED_DATE 之前找到方法
Cursor c = theDatabase.query(DATABASE_TABLE, columns, RANK + " BETWEEN 1 AND 1000", null,
RANK, null, ID + " ASC");
上面的这段代码根据我不想要的 ID 删除重复项,并在下面给出这个输出:
id rank created_date
1 1 1/1/2014
2 2 1/1/2021
3 3 1/1/2021
任何帮助都将大有帮助,谢谢
【问题讨论】:
将您存储在表格中的日期格式更改为 YYYY-MM-DD 以便它具有可比性。 【参考方案1】:您可以将GROUP BY
与max()
函数一起使用。
例如select * from table group by rank having max(created_date)
【讨论】:
这解决了我的问题,谢谢!以上是关于Android Sqlite 根据日期列删除最旧的重复结果的主要内容,如果未能解决你的问题,请参考以下文章