【发布时间】:2013-06-14 21:41:47
【问题描述】:
我有一个格式如下的表格:
mysql> select pattern,trunks,cost from sms_prices where pattern=1;
+---------+--------------+-------+
| pattern | trunks | cost |
+---------+--------------+-------+
| 1 | Vitelity | 0.099 |
| 1 | Plivo | 0.012 |
| 1 | Twilio | 0.012 |
+---------+--------------+-------+
3 rows in set (0.00 sec)
我的问题是:
考虑到此表还有另外 700 多个条目,其中 3-4 个条目用于相同的模式,我如何选择 DISTINCT(pattern) 按成本排序,ASC?
我试过了:
mysql> select DISTINCT pattern,cost,trunks from sms_prices where pattern=1 order by cost;
+---------+-------+--------------+
| pattern | cost | trunks |
+---------+-------+--------------+
| 1 | 0.012 | Plivo |
| 1 | 0.012 | Twilio |
| 1 | 0.099 | Vitelity |
+---------+-------+--------------+
3 rows in set (0.00 sec)
mysql>
但正如你所看到的,它仍然给了我相同的 3 个结果。
如果我只选择一个 DISTINCT 行,它会给我一个条目:
mysql> select DISTINCT pattern from sms_prices where pattern=1 order by cost;
+---------+
| pattern |
+---------+
| 1 |
+---------+
1 row in set (0.00 sec)
但我不知道这是哪个条目,所以结果没用。
请帮助查询每个 pattern 返回单个结果,最小 cost
谢谢!
【问题讨论】:
-
您正在寻找的“理想”结果是什么?
-
不同模式的列表(无重复) - 以及成本最低的树干。例如,我有模式 1 的 3 个条目,我想为此查看树干“Plivo”。当它扩展时(如果我删除 where pattern=1),对于模式“44”,我会有类似的情况,其中有 5 个不同的条目,所有条目的成本都不同。因此,我希望获得具有干线信息的不同前缀列表,成本最低。
-
所以只返回每个模式的最低主干值。对吗?
-
实际最低“成本”值
-
结果将是模式、成本、中继