0

以下の表から、各 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
4

2 に答える 2

2

この方法を試してください:

select emp_id,count(1) as Attempt_Count
from tab
group by emp_id
于 2013-07-30T13:33:13.330 に答える
2

あなたの質問を正しく理解できれば、これを使用できます:

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

ここでフィドルを参照してください。このクエリは、0 より大きい値が少なくとも 1 つある場合、各 Emp_Id の行の総数を返します。それ以外の場合は、0 を返します。

于 2013-07-30T13:40:11.963 に答える