使用最小总和从不同表中选择唯一记录

时间:2015-07-15 04:42:53

标签: sql sqlite

我有一个包含3个表的SQLite数据库。这些表中的每一个都有两列:名称和值,以便所有表具有相同的记录(名称)但不同的值。如何选择跨越这些表的最小值之和的记录,以使记录名称是唯一的?

名字:Steven,Jamie,Michael,Jordan,Gary

(按名称顺序)

表1:1,2,3,4,5

表2:2,3,1,5,6

表3:9,0,2,11,3

输出应该返回(Steven,Michael,Jamie),因为在这种情况下,值的总和将等于2,这是最不可能的。

1 个答案:

答案 0 :(得分:0)

注意:由于我英语不好,我可能没有理解这个问题..

如果要在表格中选择,可以使用“union”并对这些记录求和。

如下所示?

select name, min(value) as value from 
(
    select name,sum(value) as value from 
      (
        select name,value from tableA
        union select name,value from tableB
      ) x group by name
    union select name,sum(value) as value from 
      (
        select name,value from tableB
        union select name,value from tableC
      ) x group by name
    union select name,sum(value) as value from 
      (
        select name,value from tableA
        union select name,value from tableC
      ) x group by name
) z
group by name
order by value
limit 3;

Run at SQL fiddle