2015-05-14 69 views
0

这是我的表费用:SQL查询和。如果GROUP BY

id2 name exp date ... 
1 Jack 2 
2 Joe 3.1 
3 Marian 5.8 
1 Jack 2 
1 Jack 4 
3 Marian 3 

我想这个查询:总结一下所有的人费用,如果费用超过5回声它。

我有一个问题,如果部分(如果超过5)。我分组id2和SUM(exp)和工作正常,但我不知道如何暗示中频。我写了SUM(IF(exp >= 5, 1, 0))但sql错误说是不正确的组功能。

S`ELECT id2, SUM(IF(exp >= 5, 1, 0)) as ex FROM expense GROUP BY id2` 

我很感激你是否可以帮助我进行查询。 感谢

+0

请解决您的问题。列名称是“exp”还是“费用”? 'id2'或'user_id'?样本结果也有帮助。 –

回答

1
select id2,name,sum(exp) from expense group by user_id having sum(exp)>5 
+0

'user_ID'应该是'ID2'。 – xQbert

+0

你这个SOF伙计摇滚! – mhndlsz

1

这是可能的,这是你想要什么:

SELECT id2, SUM(exp), 
     GROUP_CONCAT(CASE WHEN exp > 5 THEN exp END) as ExpsGreaterThan5 
FROM expense 
GROUP BY id2; 
+0

谢谢,它也可以工作 – mhndlsz