在 user 里面,有 created_at ,表示创建的日期 ... weight 表示用户的体重,gender 表示用户的性别 .. 我现在想按照创建日期,统计一下每天注册的用户的总体重是多少 ..
先试一下数据库的 date 函数 ... 用它处理一下 created_at 的值 ..
table User.select("date(created_at)")
created_at 这个字段的值就会只有一个日期 ... 给这个用 date 处理的字段起个名字 ... 用一个 as ,然后是它的名字..
table User.select("date(created_at) as date")
这样这栏内容就会是这个 date ..
求和可以使用 sum 函数 ... 逗号分隔一下 ... 用 sum 处理一下 weight 栏的内容 .. 起个名字还叫 weight .. 接着再用一个 group .. 设置一下分组 ... 把使用 date 处理的 created_at 交给 group 方法 ..
table User.select("date(created_at) as date, sum(weight) as weight").group("date(created_at)")
这样得到的结果就是,每一天注册的用户的总的体重 ...
使用 having 可以过滤一下 ... 比如我想得到每天总体重大于 200 的结果 ... sum(weight) 大于 ? ,后面再设置一下这个 ? 号表示的值 ..
table User.select("date(created_at) as date, sum(weight) as weight").group("date(created_at)").having("sum(weight) > ?", 200)
返回的结果就是 10 月 1 号的注册用户的总体重大于 200