私は次のようなテーブルを持っています
╔══════╦══════╦═══════╦═══════╦═══════╦═══════════════════╗
║ Key1 ║ Key2 ║ Data1 ║ Data2 ║ Data3 ║ DataNotImportant4 ║
╠══════╬══════╬═══════╬═══════╬═══════╬═══════════════════╣
║ Foo ║ Bar ║ 1 ║ 2 ║ a ║ 4 ║
║ Foo ║ Bar ║ 1 ║ 2 ║ a ║ 5 ║
║ Foo ║ Bar ║ 1 ║ 2 ║ b ║ 4 ║
║ Foo ║ Test ║ 1 ║ 2 ║ f ║ 4 ║
╚══════╩══════╩═══════╩═══════╩═══════╩═══════════════════╝
ここで、Data1 Data2 Data3が異なるKey1とKey2の組み合わせを選択します。したがって、Data3はすべての行で同じではないため、結果としてFooBarを取得します。カーソルなしでこれをアーカイブするにはどうすればよいですか?データベースはSQLServer2008です
現在、カーソルを使用しています。group byを使用してすべてのキーの組み合わせを選択し、リストを繰り返し処理して、カーソルから取得したキーを使用してフィールドを選択してグループを作成します。問題は、行が多すぎると実際に遅くなることです。そこで、セットベースのソリューションを探します。