sql >> データベース >  >> RDS >> Sqlserver

クライアントの 1 日ギャップ dob の平均値を取得する SQL クエリ

    自己結合は、現在のレコードを昨日の日付を持つすべてのレコードに接続します。このコンテキストで group by を使用すると、同じ日付を持つ多くのレコードをカウントできます。 t1 個別に考慮する必要があるため、給与は後で追加され、平均を計算するために count(*) がインクリメントされます。

    Sql Fiddle の例 .

    select t1.ClientID, 
           t1.ClinetDOBs,
           (t1.Slaries + sum (t2.Slaries)) / (count (*) + 1) Avg_Slaries
      from table1 t1
     inner join table1 t2
        on t1.ClinetDOBs = dateadd(day, 1, t2.ClinetDOBs)
     group by t1.ClientID, 
           t1.ClinetDOBs,
           t1.Slaries
      


    1. MySQLは、groupbyの後に最初のnull以外の値を取得します

    2. 3つの簡単なSQLServerパフォーマンスの勝利

    3. ODP.NETを使用した名前によるクエリパラメータのバインド

    4. MySQLは行を取得しますが、ある列の値を別の値よりも優先します