选择产品访问次数相同的产品 ID 时如何解决冲突
How do i resolve conflict when selecting productid whose product visit have same occurences
我的数据库Table包含这样的记录:
ID ProductId Occurences
1 1 1
2 2 5
3 3 3
4 4 3
5 5 5
6 6 8
7 7 9
现在我想获得出现次数最多的前 4 个 ProductId。
这是我的查询:
var data = (from temp in context.Product
orderby temp.Occurences descending
select temp).Take(4).ToList();
现在这里是因为 ProductId 2 和 5 有相同的出现,ProductId 3 和 4 也有相同的出现,那么在这里我不知道如何解决这意味着我应该采用哪个产品 ID 因为他们有相同的事件。
基本上我 select 正在使用此产品 ID 在我的 website.i 上显示此产品将显示此查询 return 的那些产品。
所以谁能给我一些想法,比如如何解决这个问题???
预期输出:
ID ProductId Occurences
1 7 9
2 6 8
所以现在对于第 3 个位置,我应该 select 因为 ProductId 2 和 5 具有相同的出现次数,对于第 4 个位置,我应该 select 在 3 和4因为他们也有相同的出现。
我可以建议你使用 group by technique 并选择第一个
context.Product.GroupBy(p => p.Occurance)
.Select(grp => grp.FirstOrDefault())
.Take(4)ToList();
抱歉,我没有对此进行测试,但它应该可以完成工作。您只需添加 OrderBy 即可。
我的数据库Table包含这样的记录:
ID ProductId Occurences
1 1 1
2 2 5
3 3 3
4 4 3
5 5 5
6 6 8
7 7 9
现在我想获得出现次数最多的前 4 个 ProductId。
这是我的查询:
var data = (from temp in context.Product
orderby temp.Occurences descending
select temp).Take(4).ToList();
现在这里是因为 ProductId 2 和 5 有相同的出现,ProductId 3 和 4 也有相同的出现,那么在这里我不知道如何解决这意味着我应该采用哪个产品 ID 因为他们有相同的事件。
基本上我 select 正在使用此产品 ID 在我的 website.i 上显示此产品将显示此查询 return 的那些产品。
所以谁能给我一些想法,比如如何解决这个问题???
预期输出:
ID ProductId Occurences
1 7 9
2 6 8
所以现在对于第 3 个位置,我应该 select 因为 ProductId 2 和 5 具有相同的出现次数,对于第 4 个位置,我应该 select 在 3 和4因为他们也有相同的出现。
我可以建议你使用 group by technique 并选择第一个
context.Product.GroupBy(p => p.Occurance)
.Select(grp => grp.FirstOrDefault())
.Take(4)ToList();
抱歉,我没有对此进行测试,但它应该可以完成工作。您只需添加 OrderBy 即可。