Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/205.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sqlite/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android查询多列获取计数_Android_Sqlite_Select_Group By_Multiple Columns - Fatal编程技术网

Android查询多列获取计数

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

我试图查询一个表并得到一个结果,该结果将显示一个有10列的表中的所有水果条目。下面是表格结构

    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说了一些关于表格的事情,也许频率是从数据库中计算出来的?谢谢,我在阅读评论并意识到我走错了方向后编辑了我的问题。因此,希望这会更有意义。