最大尝试数

时间:2013-07-30 13:29:47

标签: sql sql-server

从下表中我想得到的结果是每个Emp_ID从字段

获取值'1'
Emp_ID | Value
167    | 0
175    | 0
175    | 1
167    | 0
188    | 0
188    | 0
167    | 1
216    | 1
188    | 1
217    | 0

输出应该是这样的:

Emp_ID | Attempt_Count
167    | 3
175    | 2
188    | 3
216    | 1
217    | 0

2 个答案:

答案 0 :(得分:2)

尝试这种方式:

select emp_id,count(1) as Attempt_Count
from tab
group by emp_id

答案 1 :(得分:2)

如果我理解你的问题,可以使用:

SELECT
  Emp_Id,
  CASE WHEN MAX(Value)>0 THEN COUNT(*) ELSE 0 END Attempt_Count
FROM
  tablename
GROUP BY
  Emp_Id

请参阅小提琴here。如果至少有一个值大于0,则此查询将返回每个Emp_Id的总行数。否则它将返回0.