【问题标题】:how to get grouped query data from the resultset?如何从结果集中获取分组查询数据?
【发布时间】:2013-04-19 10:37:35
【问题描述】:

我想从 sqlite 的表中获取分组数据。例如,表格如下:

Name  Group  Price
a     1      10
b     1      9
c     1      10
d     2      11
e     2      10
f     3      12
g     3      10
h     1      11

现在我想获取按Group列分组的所有数据,每个组在一个数组中,即

array1 = {{a,1,10},{b,1,9},{c,1,10},{h,1,11}}; 
array2 = {{d,2,11},{e,2,10}}; 
array3 = {{f,3,12},{g,3,10}}.

因为我需要这些二维数组来填充分组表视图。 sql 语句可能是NSString *sql = @"SELECT * FROM table GROUP BY Group"; 但我想知道如何从结果集中获取数据。我正在使用 FMDB。

感谢任何帮助。

【问题讨论】:

    标签: iphone ios sql sqlite fmdb


    【解决方案1】:

    使用普通的 SELECT 语句从 sql 中获取数据,按组和名称排序:

    SELECT * FROM table ORDER BY group, name;
    

    然后在代码中构建你的数组,当组 id 改变时切换到填充下一个数组。

    【讨论】:

    • 我明白了。我明天试试。
    【解决方案2】:

    让我澄清一下 GroupBy。您可以对数据进行分组,但那时它需要对其他列进行分组功能。 例如表有学生列表,其中有性别组平均男性和女性组,因此我们可以按性别对这张表进行分组,这将返回两组。现在我们需要对结果列执行一些操作。 例如每组最高分或平均分

    在您的情况下,您想要分组,但您需要对价格列进行什么样的操作? 例如下面的查询将返回最高价格的组。

    SELECT Group,MAX(Price) AS MaxPriceByEachGroup FROM TABLE GROUP BY(group)
    

    【讨论】:

    • 我现在更新我的问题,实际上我想使用表格数据制作一个二维数组来填充分组表格视图。
    猜你喜欢
    • 1970-01-01
    • 2017-04-25
    • 1970-01-01
    • 1970-01-01
    • 2015-02-05
    • 2015-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多