sql 列中 10 个最常见的值 - linq to sql
10 most frequent value in sql column - linq to sql
假设我有一个名为 details
的 table,其中包含以下列:
product id = int
product price = float
products' category = nvarchar(50)
此 table 没有主键(或外键,如果有的话)。
我想执行一个查询,其中 returns 一个字符串列表,其中包含 10 个最常见的产品类别(产品最多的类别),按降序排列。
如何执行此查询?
这是 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
return 最多只有十个。如果有并列第 10 名,它只会选择一个 - 如果您需要 return 两者,请告诉我。
您可以尝试这样的操作:
var tenMostFrequentCategories = products.GroupBy(product=>product.Category)
.OrderByDescending(grp=>grp.Count())
.Select(grp=>grp.Key)
.ToList();
我假设 products
是您的数据上下文 class。
假设我有一个名为 details
的 table,其中包含以下列:
product id = int
product price = float
products' category = nvarchar(50)
此 table 没有主键(或外键,如果有的话)。
我想执行一个查询,其中 returns 一个字符串列表,其中包含 10 个最常见的产品类别(产品最多的类别),按降序排列。
如何执行此查询?
这是 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
return 最多只有十个。如果有并列第 10 名,它只会选择一个 - 如果您需要 return 两者,请告诉我。
您可以尝试这样的操作:
var tenMostFrequentCategories = products.GroupBy(product=>product.Category)
.OrderByDescending(grp=>grp.Count())
.Select(grp=>grp.Key)
.ToList();
我假设 products
是您的数据上下文 class。