Как я могу получить 5 лучших элементов в базе данных, основываясь на том или ином поле? - PullRequest
3 голосов
/ 26 июля 2010

Используя платформу Ado.Net Entity, я пытаюсь получить «первые 3» элемента в таблице в зависимости от количества их появления в таблице.

Например:

Таблица: basket_to_product_id |basket_id |product_id

Я хочу посмотреть, сколько раз встречается product_id, и я хотел бы вернуть топ-3 product_ids, которые встречаются чаще всего.

Ответы [ 3 ]

1 голос
/ 26 июля 2010

Примерно так должно работать (конечно, я не знаю реальных названий ваших свойств):

IEnumerable<int> top3ProductIds = (from btp in entities.BasketToProduct
                                   group btp by btp.ProductId into g
                                   orderby g.Count() descending
                                   select g.Key).Take(3);
0 голосов
/ 26 июля 2010

Попробуйте это:

var query = entities.BasketToProduct
                         .GroupBy(btp => btp.ProductID)
                         .Select(g => ProductID = g.Key, Count = g.Count())
                         .OrderBy(g => g.Count)
                         .Take(3);

Это даст вам первые три ProductIDs и их количество.

0 голосов
/ 26 июля 2010

Вы можете попытаться использовать запрос LINQ к таблице.

...