我有点数据表,数据如下:
+----+---------+--------+
| id | user_id | points |
+----+---------+--------+
| 1 | 1 | 10 |
| 2 | 3 | 5 |
| 3 | 1 | 12 |
| 4 | 2 | 27 |
| 5 | 1 | 14 |
+----+---------+--------+
我需要来自上述数据的用户ID,这些点总和大于10
像
+--------+
| userid |
+--------+
| 1 |
| 2 |
+--------+
答案 0 :(得分:7)
由于您尝试对用户聚合进行操作,因此您无法在查询中使用GROUP BY
。相反,请使用HAVING
和SELECT t.user_id FROM
table t
GROUP BY t.user_id
HAVING SUM(t.points) > 10
子句,如下所示:
public function getFunctions()
{
return array(
new \Twig_SimpleFunction('my_mktime', array($this, 'myMktime')),
);
}
public function myMktime($month, $day, $year)
{
retrun \mktime( 0 , 0 , 0 , $month , $day , $year );
}
以下是 SQL Fiddle ,您可以在其中测试此查询。
答案 1 :(得分:1)
您需要使用having
和select user_id
from TableName
group by user_id
having sum(points)>10
:
user_id
-------
1
2
示例结果:
select user_id from tablename
group by user_id
having sum(points)>10
中的示例结果
答案 2 :(得分:1)
尝试此查询
select userid
from `table`
group by user_id
having sum(points) > 10
答案 3 :(得分:1)
您必须使用having子句:
{{1}}
答案 4 :(得分:1)
您不能在where
子句中使用聚合表达式。但是,您可以使用having
子句。它的作用类似于where
条款,因为它用于过滤掉结果,但它在<{strong> group by
子句后应用,所以它也可以对聚合表达式起作用:
SELECT user_id
FROM points
GROUP BY user_id
HAVING SUM(points) > 10
答案 5 :(得分:1)
尝试此查询:
select user_id
from [your_table]
group by user_id
having sum(points)>10