0
最初のテーブル
+ -------- + ------------ + ------- +
| タイプ| バラエティ| 価格|
+ -------- + ------------ + ------- +
| アップル| ガラ| 2.79 |
| アップル| 富士| 0.24 |
| アップル| リンバートウィッグ| 2.87 |
| オレンジ| バレンシア| 3.59 |
| オレンジ| おへそ| 9.36 |
| 梨| ブラッドフォード| 6.05 |
| 梨| バートレット| 2.14 |
| チェリー| ビング| 2.55 |
| チェリー| シュラン| 6.33 |
+ -------- + ------------ + ------- +
2番目のテーブル
+ -------- + ---------- +
| タイプ| minprice |
+ -------- + ---------- +
| アップル| 0.24 |
| チェリー| 2.55 |
| オレンジ| 3.59 |
| 梨| 2.14 |
+ -------- + ---------- +
select type, min(price) as minprice
from fruits
group by type;

最初のテーブルは私が持っているデータの例であり、2番目のテーブルは最初のテーブルから取得したいものです。

GenericRepository/UnitOfworkリポジトリからデータを取得するために使用しています。

repository.fruitRepository.Get().GroupBy(m => m.type);

タイプフィールドしか取得できませんが、もっと多くのフィールドを取得したいと思います。

groupbyの前にselect句を使用する必要がありますか?はいの場合、どうすればさらにフィールドを選択できますか?

4

1 に答える 1

0

GroupByメソッドはより多くのデータを返しますが、列挙可能なものとして返されます...GroupByの後にSelectを使用して必要なデータを引き出すことができる場合があります...

repository.fruitRepository.Get()
    .GroupBy(m => m.type)
    .Select(m => new { type = m.Key, minPrice = m.Min(f => f.Price) });

または、LINQステートメントを使用する場合:

var result = from x in repository.fruitRepository.Get()
             group x by x.type into typeGroup
             select new
             {
                 type = typeGroup.Key,
                 minPrice = typeGroup.Min(item => item.Price)
             };
于 2012-07-28T04:54:06.823 に答える