25個の列ヘッダーを持つ100万行以上のテーブルからデータを取得しています。私は、合計の応答コールと合計接続秒数を取得する単純なクエリを持っています。SQL Server - 最初の300行(および301+)に基づく列の合計
SELECT
convert(date,format(Dateadd(hh,1,[Start Time]),'dd/MM/yyyy'),103) as [Date]
,sum(iif([type] = 'normal operator call',1,0)) as [answered calls]
,sum([connected (secs)]) as [total con sec]
from inboundcallsview
where [account] = '106844'
and dateadd(hh,1,[start time]) between '2017-05-01' and '2017-06-01'
group by convert(date,format(Dateadd(hh,1,[Start Time]),'dd/MM/yyyy'),103)
私は何を探していますと、([開始時刻]列で)最初の300の接続秒のコールに答え和である(任意の行ここで、[タイプ] =「通常のオペレータコール」)それぞれの([日付]列で定義されているとおり)。 301以降のすべてのコールの接続秒数も表示されます。基本的に私の現在の出力が
であり、私はそれが6月
も日付の変更を無視したい(06)であるべきかもしれない(05)私は私の作成めちゃめちゃ例。私は最終的にすべての日付のためにこれをしたいと思うので、日付のパラメータは特に重要ではありません。
ありがとうございます。擬似コードで
を使用すると、ROW_NUMBER関数について知っていますか? –
私はそれが存在することを知っていますが、私はすでに分割して日付と日付ごとの行の数をグループ化しているときにそれを組み込む方法は不規則になります。それは私が私の計算に助けを必要とするものです。そこにはそれ自身のサブテーブルである各日付を作るための何らかの方法があり、そのサブテーブルの行をおそらく数えますか?どのように見えるだろうか? – tomdemaine
'OVER(PARTITION BY(あなたの日付出力)ORDER BY [開始時刻])で' ROW_NUMBER'を使うことに注意してください。ところで、2つの派生テーブルを結合する必要があります。 1-300のテーブルと301 + –