请阅读所有内容
您好,我需要进行一些或多或少的复杂计算(至少对我而言),我已经执行了一个具有多个联接的查询,以合并多个表并选择一些列,但是现在我必须计算一个字段,该字段为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 |
|---------------------|------------------|
然后deliver.status_id
的频率为{1 => 2, 2 => 2, 3 => 2 4 => 1}
,但是正如我所说,我只需要考虑一次出现的deliver_group.id
,这意味着频率将为{{1} },因为重复{1 => 1, 2 => 1, 3 => 1, 4 => 1}
时我必须“忽略” deliver.status_id
。
deliver_group.id
另一个例子:
|---------------------|------------------|
| 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) |
|---------------------|------------------|
。
顺便说一句,我不想使用ruby语法来做到这一点,我的意思是,我知道如何使用{1 => 2, 2 => 1, 3 => 2, 4 => 1}
和一个迭代器来做到这一点,等等,等等,但是我想要完全通过查询进行计算,因为性能是此应用程序的关键
Hash
我知道什么都不被忽略的情况非常简单,但是我迷失了实际情况。