我有一张桌子:
Id Catg
1 cat01
2 cat01
3 cat01
1 cat02
2 cat02
现在我想检测catg01和catg02的发生次数,就像在这个例子中,catg01是3次而catg02是2次,我想通过LINQ / simple db查询来计算。 请注意:不能使用Where子句和硬编码Catg01 / catg 02,因为可以有多个类别。是否可以检测?如果是的话请帮助。
答案 0 :(得分:6)
SELECT Catg, COUNT(*)
FROM myTable GROUP BY Catg
答案 1 :(得分:5)
Select Catg, Count(*) From TableName Group By CatG
对于LINQ版本。想象一个类
class Table
{
public int ID { get; set; }
public string CatG { get; set; }
}
然后,如果您有该类的列表,可以按如下方式查询
List<Table> y = new List<Table>();
y.Add(new Table() { ID = 1, CatG = "a" });
y.Add(new Table() { ID = 2, CatG = "a" });
y.Add(new Table() { ID = 3, CatG = "a" });
y.Add(new Table() { ID = 4, CatG = "b" });
y.Add(new Table() { ID = 5, CatG = "b" });
var query = y.GroupBy(table => table.CatG);
// Iterate over each IGrouping in the collection.
foreach (var item in query)
{
Console.WriteLine("CatG: {0} Number of Items: {1}", item.Key, item.Count());
}