2つ以上の列(たとえば、A、B、C)のテーブルがあります。1つの列にいくつかの数値(C)があり、グループ化のような「group by」を実行して、Cの数値を合計したいのですが、そのためのアルゴリズムがわかりません。
テーブルを各列で並べ替えてみました(数字の列(C)を除いて、最後から最初まで、この場合はsort(B)、次にsort(A))、次に、n
行がAで同じ値を保持する場所Bは、th行と同様に、th行からth行(C列)にn-1
番号を追加してから、 th行を削除します。それ以外の場合、行のAまたはBの値が、行のAまたはBの値と異なる場合は、次の行に移動します。次に、テーブルの最後の行までアルゴリズムを繰り返します。しかし、どういうわけか、これは常に機能しているわけではありません。特に、列の数が多い場合(並べ替え方法が原因で、一部の行がグループ化されないままになっている場合があります)。n
n-1
n
n
n-1
これが適切なグループ化アルゴリズムであるかどうかを知りたいので、問題を並べ替え方法で探す必要があります。または、別の(並べ替えおよび/またはグループ化)アルゴリズムを使用する必要があります。ありがとうございました。
LE:どうやら、私が使用したアルゴリズムは、コードを徹底的にチェックし、私のようなジュニアプログラマーがよく犯す小さな間違いを修正した後でもうまく機能しているようです:)