2016-05-13 5 views
1

私は4つの列で構成されるテーブルEmpを持っています。SQL Updateクエリの集計関数

Name Date  Calls Supervisor 
Alwin 10-05-2016 20  Pramod 
Pavan 11-05-2016 10  Steevan 
Amit 12-05-2016 12  Raja 
Alwin 13-05-2016 15  Sagar 

すべてのユーザーのコールを追加し、最新の日付とそれぞれのスーパーバイザに配置する必要があります。ユーザーごとに1つの行しか必要ありません。 我々が探しているものを期待される結果は

Name Date  Calls Supervisor 
Pavan 11-05-2016 10  Steevan 
Amit 12-05-2016 12  Raja 
Alwin 13-05-2016 35  Sagar 

が私を助けてくださいです。

+2

期待される結果を投稿することはできますか? –

+0

「ユーザー名は最近追加された管理者に更新する必要があります」とはどういう意味ですか? –

+0

異なるスーパーバイザに同じユーザ名を2つ使用している場合は、最近の日付に基づく結果で、ユーザ名はスーパーバイザとサマリコールを考慮する必要があります。 – Shivashant

答えて

0

使用SUM() Over

;WITH cte 
    AS (SELECT NAME, 
       date, 
       Sum(calls)OVER(partition BY NAME) AS calls, 
       supervisor, 
       Row_number()OVER(partition BY NAME ORDER BY date DESC) Rn 
     FROM yourtable) 
SELECT NAME, 
     date, 
     calls, 
     supervisor 
FROM cte 
WHERE Rn = 1 
+0

ありがとう – Shivashant

0

この

select Name, Date, SUM(Calls) from Test 
Group By Name, Date 

結果試してみてください:Name当たりの総callsを見つけるために、最新のdate使用Row_Number()窓関数に基づいてsupervisorを取得するために

Name Date  SumCalls 
Alwin 05/10/2016 35 
Pavan 05/11/2016 10 
Amit 05/12/2016 12 
+0

私はこのアドレスに「Supervisor」の結果があるとは思わない –