2017-06-02 62 views
-2

比我有四個記錄:MySQL的:如何查詢一個表

id instance_id type value 
1  a    used  1 
2  a    total 5 
3  b    used  2 
4  b    total 6 

我想計算raito使用/總每個INSTANCE_ID

結果應該是

一個: 1/5 b:2/6

我該怎麼查詢?

+2

你有沒有嘗試過的東西沒有?這是功課嗎? –

+0

我選擇了所有記錄並用程序計算。但是我想知道如果我可以使用sql語句得到結果嗎? – zhengbo

+0

2/6 = 1/3 !!!!!否則,在這裏沒有「計算」這樣的 – Strawberry

回答

0

你可以做類似下面

SELECT instance_id , 
SUM(CASE WHEN type= 'used' THEN value ELSE 0 END)/SUM(CASE WHEN type= 'total' THEN value ELSE 0 END) 
FROM t 
GROUP BY instance_id 
+0

它確實有效。但如果總數是0呢? – zhengbo

+0

什麼價值你想,如果總爲零,根據你的要求,你可以這樣做,分割處理之前寫多了一個case語句。 – Rams

0
SELECT instance_id , 
CONCAT(SUM(CASE WHEN type= 'used' THEN value ELSE 0 END),'/',SUM(CASE WHEN type= 'total' THEN value ELSE 0 END)) 
FROM t 
GROUP BY instance_id