私はかなり大きなクエリに取り組んでいますが、最後のビットで立ち往生しています。この例のテーブルを考えると:
Key1 | Key2 | SomeCol |
0 | 0 | ABC |
0 | 1 | 123 |
------------------------------
1 | 5 | ABC |
1 | 6 | DEF |
1 | 7 | ABC |
------------------------------
2 | 4 | ABC |
2 | 5 | 456 |
2 | 6 | 456 |
------------------------------
3 | 4 | ABC |
3 | 5 | 456 |
3 | 6 | ABC |
------------------------------
4 | 4 | ABC |
4 | 5 | ABC |
4 | 6 | ABC |
クエリのこの時点で、テーブルのシーケンシャル (Key1, Key2) 部分を抽出し、Key1
. SomeCol
最初の行を除いて、のすべての値が同一であるかどうかを判断したいと考えています。
Expected results:
Key1 | Key2 | SomeCol |
0 | 0 | ABC |
2 | 4 | ABC |
4 | 4 | ABC |
.Any(g => g.SomeCol.Distinct().Count() == 1)
すべてのエントリを同じにする必要がある場合のようなものを使用できることはわかっていますが、構文を正しいものにする方法がわかりませんSkip(1)
。また、平等をチェックする私の方法は一種のハックだと感じています。この処理は C# で簡単に実行できることはわかっていますが、できるだけ多くの処理をデータベース側で実行したいと考えています。私のクエリは現在拡張メソッドで記述されているため、同じ構文で回答していただければ幸いです。ありがとう!
私がこれまでに持っているもの:
resultFromRestOfQuery
.GroupBy(g => g.Key1)
????
.SelectMany(g => g.Take(1).Select(h => h)