gpt4 book ai didi

android - SQLite CASE、SUM 和 COUNT

转载 作者:行者123 更新时间:2023-12-03 18:17:17 26 4
gpt4 key购买 nike

我正在制作一个 list 应用程序作为学习练习。基础工作良好,现在我正在尝试添加一些花里胡哨。

当我按类别(在 expandablelistview 中)对列表进行排序时,如果检查了类别的所有内容,则应检查类别组 View 。

我保留了是否在包含特定列表项的表中检查单个列表项的标志。我使用一个简单的 1/0 标志来表示选中或未选中。我实现我的功能的想法是在我的查询中使用类似的东西来确定是否检查了所有项目:

CASE WHEN sum(list_items.checked) = count(list_items.checked) THEN 1 ELSE 0 END AS 'groupchecked'

认为如果它们都被选中(1)那么它们的总和应该等于它们的总数......但是,当我将该代码插入到我的查询中时,每个类别超过一个项目的任何内容都不会显示向上。我确定这个问题是由于我对 SQLite 不熟悉,但我似乎无法找出正确的方法来完成这项工作。

我当前尝试使用选中的标志获取我的组游标:
public Cursor fetchGroup(String group, long list) {
String query = "SELECT DISTINCT "
+ group
+ " AS _id, CASE WHEN sum(list_items.checked) = count(list_items.checked) THEN 1 ELSE 0 END AS groupchecked FROM "
+ LISTITEM_TABLE
+ " JOIN "
+ ITEM_TABLE
+ " ON list_items.item_id=items._id WHERE list_items.list_id = "
+ list;
return mDb.rawQuery(query, null);
}

最佳答案

create table FOO(grp text, subgroup text, checked int)

insert into FOO(grp, subgroup, checked)
select 'feline','lion',1
union
select 'feline','tiger',0
union
select 'canine','dog',1
union
select 'canine','wolf',1


select grp, sum(checked) as checkedSum, count(checked) as checkedCount
from foo
group by grp

现在制作一个内联 View :
select X.grp
from
(
select grp, sum(checked) as checkedSum, count(checked) as checkedCount
from foo
group by grp

) X

where checkedSum=checkedCount

关于android - SQLite CASE、SUM 和 COUNT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15642911/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com