您好,匿名用户
随意问技术百科期待您的加入

求Android的SQLite查询,带Group和Order

0 投票

数据结构是这样的

date    | not uniq
user    | not uniq
product | uniq

我要做这样一个查询
取出所有用户,最近发出的一个产品,并且这个列表是按照date排序的。
比如数据如下

--
    date    |    user    |    product
20120901    |    John    |    A
20120903    |    Tom     |    B
20120802    |    John    |    C
20120906    |    John    |    D
20120821    |    Tom     |    E
20120902    |    Tom     |    F
20120825    |    Tom     |    G

我希望得到数据

--
    date    |    user    |    product  |    count
20120906    |    John    |    D        |    3
20120903    |    Tom     |    B        |    4

我写的SQL如下:

Cursor cursor = db.query(
    /* FROM */ "products",
    /* SELECT */ new String[]{ "*", "COUNT(product) AS count" },
    /* WHERE */ null,
    /* WHERE args */ null,
    /* GROUP BY */ "user",
    /* HAVING */ null,
    /* ORDER BY */ "date DESC"
);

得到的结果,product不是最新的
另外HAVING那个是什么东西?

用户头像 提问 2012年 12月1日 @ Kha'Zix 上等兵 (269 威望)
分享到:

1个回答

0 投票

having可以理解为group by的where条件

不知道你这个ORM怎么写,直接写sql,在mysql下测试通过:
select a.*,count(a.product) as count from products a where date=(select max(date) from products b where b.user=a.user) group by user

用户头像 回复 2012年 12月1日 @ Akali 上等兵 (237 威望)
提一个问题:

相关问题

0 投票
1 回复 43 阅读
用户头像 提问 2012年 12月1日 @ Apollo 上等兵 (269 威望)
0 投票
1 回复 36 阅读
用户头像 提问 2012年 12月1日 @ Sion 上等兵 (319 威望)
0 投票
1 回复 249 阅读
0 投票
1 回复 65 阅读
0 投票
1 回复 4 阅读
用户头像 提问 2014年 5月29日 @ Elise 上等兵 (273 威望)

欢迎来到随意问技术百科, 这是一个面向专业开发者的IT问答网站,提供途径助开发者查找IT技术方案,解决程序bug和网站运维难题等。
温馨提示:本网站禁止用户发布与IT技术无关的、粗浅的、毫无意义的或者违法国家法规的等不合理内容,谢谢支持。

欢迎访问随意问技术百科,为了给您提供更好的服务,请及时反馈您的意见。
...