3

表示するために集計を行う必要があるデータセットがあります。

Date,     Rank, Vote

07/20/2013, 8, -1 
07/21/2013, 8, -1 
07/23/2013, 7, -1 
07/24/2013, 6, 1
07/25/2013, 7, 1 
07/26/2013, 7, -1 
07/27/2013, 8, 1 
07/28/2013, 8, 1
07/29/2013, 8, -1

連続したランクでグループ化し、投票を合計して、グループ化された日付の最初の日付を選択したいと思います。上記のデータセットは次を返します。

07/20/2013,8,-2
07/23/2013,7,-1
07/24/2013,6,1
07/25/2013,7,0
07/27/2013,8,1

私が最初に考えたのは GROUP BY Date and Rank でしたが、それは複数日を統合しません。データをループするか、ストアドプロシージャ内でカーソルを使用することで、事後にこれを行うことができますが、SQLクエリを使用したより簡単な方法があるかどうかに興味があります。

4

2 に答える 2

0

私が見ることができる最も簡単な方法は、あなたがすでに指摘したことです。

Group By SQL を使用します。

SELECT  date, rank, SUM(vote) FROM YourTable
GROUP BY date, rank

フィドルのデモ: http://sqlfiddle.com/#!2/d65d5c/3

プログラムでこのレコード セットを反復処理し、データを取得するために必要なことを行います。(質問にプログラミング言語のタグを付けていただければ、その方法をお見せできます)。

基本的にいいえ、これを行うためのより良い方法はありません。私が見る限り、これはかなり複雑で遅い SQL クエリになってしまいます。でも、もっと上手に教えてくれる人がいるかもしれません。

于 2013-07-26T16:38:31.320 に答える