我们假设我有一个名为details
的表格,其中包含以下列:
product id = int
product price = float
products' category = nvarchar(50)
此表没有主键(或外键,如果有的话)。
我想执行一个查询,该查询返回一个字符串列表,其中包含10个最常用的产品类别(产品最多的类别),按降序排列。
如何执行此查询?
答案 0 :(得分:1)
这是SQL -
Select top 10 [Category], count(distinct productID) as NumProducts
from details
group by [category]
order by count(distinct productID) desc
group by
会根据类别对产品进行计数,然后top 10
只会返回十个最多的产品。如果有第10名的关系,它只会选择一个 - 如果你需要它返回两个,请告诉我。
答案 1 :(得分:1)
您可以尝试这样的事情:
var tenMostFrequentCategories = products.GroupBy(product=>product.Category)
.OrderByDescending(grp=>grp.Count())
.Select(grp=>grp.Key)
.ToList();
我假设products
是您的数据上下文类。