2015-08-14 56 views
1

我有兩個表具有以下數據分發2個選擇具有給定的比率

表「組1」:

id | sequenceNo 
----+----------- 
101 | 1 
102 | 2 
103 | 3 
104 | 4 
105 | 5 

表「組2」:

id | sequenceNo 
----+----------- 
201 | 1 
202 | 2 
203 | 3 
204 | 4 
205 | 5 

我已經給定的這個比例應該是3:1,這個比例應該是組合的組合。

其結果將是:

id 
-- 
101 
102 
103 
201 
104 
105 

在理想情況下,當基團中的一個是空的混合停止。

我已經作爲面向對象程序實現了該問題的解決方案。但是,如果還有一個簡單的僅限SQL的解決方案,我很好奇。

非常感謝,

MAIK

回答

3

UNION ALL的2個表,但在第二個表的選擇,你應該乘以3(或許是3.00001,如果你希望它展後的SequenceNo列第一欄第三欄)。

解決方案:

SELECT * FROM 
    (SELECT id, SequenceNo FROM Group1 
     UNION ALL 
    SELECT id, SequenceNo*3.00001 FROM Group2) 
    ORDER BY SequenceNo ASC 
+0

where子句應該被添加到過濾組2 – wvdz

+0

這很好。我知道一件簡單的事情會存在。 – samba2

+0

只是爲了好奇:如果比例不是固定的,而是像3:2或1:1那樣變化,你是否看到類似的直接解決方案?謝謝! – samba2

相關問題