2017-06-02 30 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