Android查询多列获取计数
我试图查询一个表并得到一个结果,该结果将显示一个有10列的表中的所有水果条目。下面是表格结构Android查询多列获取计数,android,sqlite,select,group-by,multiple-columns,Android,Sqlite,Select,Group By,Multiple Columns,我试图查询一个表并得到一个结果,该结果将显示一个有10列的表中的所有水果条目。下面是表格结构 Table 1 Name Col2 Col3 ... Col11 Apple Pie Apple Cinnamon ... Flour Sugar Cookie Flour Sugar ... Vanilla 我已经尝试过这个sql查询,结果与我想要的非常接近 SELECT
Table 1
Name Col2 Col3 ... Col11
Apple Pie Apple Cinnamon ... Flour
Sugar Cookie Flour Sugar ... Vanilla
我已经尝试过这个sql查询,结果与我想要的非常接近
SELECT
Col2 as Flavor, COUNT(*)
FROM
table 1
group by Flavor
我遇到的问题是如何获取查询中的其他9列。预期的结果应该是
Flavor Count
Apple 1
Cinnamon 1
Flour 2
Sugar 1
Vanilla 1
感谢所有的评论,这些评论引导我朝着正确的方向前进。有人能帮你解决这个问题吗?你可以得到列表中某个项目的出现情况,如下所示:
import java.util.Collections;
// count the occurrence of item one in the list
int itemOneCount = Collections.frequency(listitem,"item one");
再次感谢你的帮助!这些评论让我找到了正确的答案。这是解决办法
SELECT SUM(Output.count),Output.attr
FROM
(
SELECT COUNT(flv1name) AS count,flv1name AS attr FROM recipes GROUP BY flv1name
UNION ALL
SELECT COUNT(flv2name) AS count,flv2name AS attr FROM recipes GROUP BY flv2name
UNION ALL
SELECT COUNT(flv3name) AS count,flv3name AS attr FROM recipes GROUP BY flv3name
UNION ALL
SELECT COUNT(flv4name) AS count,flv4name AS attr FROM recipes GROUP BY flv4name
UNION ALL
SELECT COUNT(flv5name) AS count,flv5name AS attr FROM recipes GROUP BY flv5name
UNION ALL
SELECT COUNT(flv6name) AS count,flv6name AS attr FROM recipes GROUP BY flv6name
UNION ALL
SELECT COUNT(flv7name) AS count,flv7name AS attr FROM recipes GROUP BY flv7name
UNION ALL
SELECT COUNT(flv8name) AS count,flv8name AS attr FROM recipes GROUP BY flv8name
UNION ALL
SELECT COUNT(flv9name) AS count,flv9name AS attr FROM recipes GROUP BY flv9name
UNION ALL
SELECT COUNT(flv10name) AS count,flv10name AS attr FROM recipes GROUP BY flv10name) AS Output
GROUP BY attr
这会将结果显示为
SUM.Output.Count attr
1 Apple
1 Cinnamon
2 Flour
1 Sugar
1 Vanilla
我认为最好在填充listview之前获取该信息,并创建一个自定义对象列表
条目
,假设它有{string value=”“,int count=0},然后将列表
传递给适配器。@MrEd,如果您是从数据库获取计数,那么您应该更改方法。首先,使用group和count从数据库中获取项目的所有计数,然后使用自定义适配器填充您的listview。谢谢您,在阅读评论并意识到我走错了方向后,我编辑了我的问题。所以,希望这会更有意义。看看GROUP BY是如何工作的。谢谢CL,这让我更接近并帮助我意识到我在追求什么。但没有提供解决方案。我已经通过问题进行了修改,希望这能有所帮助。我不认为OP想在列表中计算,OP说了一些关于表格的事情,也许频率是从数据库中计算出来的?谢谢,我在阅读评论并意识到我走错了方向后编辑了我的问题。因此,希望这会更有意义。