代码之家  ›  专栏  ›  技术社区  ›  Patricio Sard

根据条件检索频率的ActiveRecord查询

  •  0
  • Patricio Sard  · 技术社区  · 5 年前

    求求你,什么都看

    deliver.status_id ,问题是我必须做这个计算 deliver_group.id ,这是什么意思?举个例子:

    如果我有这些选定的列。。。

    |---------------------|------------------|
    |  deliver.status_id  | deliver_group.id |
    |---------------------|------------------|
    |          1          |         10       |
    |---------------------|------------------|
    |          3          |         11       |
    |---------------------|------------------|
    |          4          |         12       |
    |---------------------|------------------|
    |          2          |         12       |
    |---------------------|------------------|
    |          1          |         12       |
    |---------------------|------------------|
    |          2          |         13       |
    |---------------------|------------------|
    |          3          |         13       |
    |---------------------|------------------|
    

    然后 交货状态 {1 => 2, 2 => 2, 3 => 2 4 => 1} ,但正如我所说,我只需要考虑 传送组id {1 => 1, 2 => 1, 3 => 1, 4 => 1} 因为我不得不“忽略” 是重复的。

    |---------------------|------------------|
    |  deliver.status_id  | deliver_group.id |
    |---------------------|------------------|
    |          1          |         10       |
    |---------------------|------------------|
    |          3          |         11       |
    |---------------------|------------------|
    |          4          |         12       |
    |---------------------|------------------|
    |          2          |   12 (ignored)   |
    |---------------------|------------------|
    |          1          |   12 (ignored)   |
    |---------------------|------------------|
    |          2          |         13       |
    |---------------------|------------------|
    |          3          |   13 (ignored)   |
    |---------------------|------------------|
    

    另一个例子:

    |---------------------|------------------|
    |  deliver.status_id  | deliver_group.id |
    |---------------------|------------------|
    |          1          |         7        |
    |---------------------|------------------|
    |          3          |         8        |
    |---------------------|------------------|
    |          4          |         9        |
    |---------------------|------------------|
    |          2          |    9 (ignored)   |
    |---------------------|------------------|
    |          1          |         10       |
    |---------------------|------------------|
    |          2          |         11       |
    |---------------------|------------------|
    |          3          |   11 (ignored)   |
    |---------------------|------------------|
    |          3          |   11 (ignored)   |
    |---------------------|------------------|
    |          3          |         12       |
    |---------------------|------------------|
    |          3          |   12 (ignored)   |
    |---------------------|------------------|
    |          3          |   12 (ignored)   |
    |---------------------|------------------|
    

    {1 => 2, 2 => 1, 3 => 2, 4 => 1} .

    顺便说一句,我不想用ruby语法,我是说,我知道如何用 Hash 一个迭代器,blah,blah,blah,但是我想用一个查询完成计算,因为性能是这个应用程序的关键

    我知道什么都不被忽视的情况很简单, query.group('deliver.status_id').count

    0 回复  |  直到 5 年前