选择查询算术计算

时间:2015-05-12 14:02:08

标签: mysql sql join division

我想用select查询进行一些基本的计算。 我有一个名为Distances的表,并且有一个属性保存距离。 我想计算Customer1的距离/ Customer1,Customer2和Customer3的距离总和。 这种查询是否正式正确:

select ((select Distances.distance from Distances
         where Distances.CustomerID='1') /
        (select SUM (Distances.distance) from Distances
          where Distances.CustomerID IN ('1', '2', '3')) as ...

2 个答案:

答案 0 :(得分:0)

我想你只想两次使用Distances表。

SELECT member_id, name FROM a
MINUS
SELECT member_id, name FROM b

答案 1 :(得分:0)

只需使用条件聚合:

select max(case when d.CustomerID = '1' then d.distance
           end) as Cust1Distance,
       sum(case when d.CustomerId in ('1', '2', '3') then d.distance
           end) as Cust123Distance
from distances d;

如果您只关注这三个客户,那么添加where d.CustomerId in ('1', '2', '3')可以提高查询效率。