如何计算列中相同数据的数量

Won*_*ing 1 sql-server

我有一张桌子:

Id  Catg
1   cat01
2   cat01
3   cat01
1   cat02
2   cat02
Run Code Online (Sandbox Code Playgroud)

现在我要检测catg01和catg02的发生次数,就像在这个例子中,catg01是3次而catg02是2次,我想通过LINQ/simple db查询来计算.请注意:不能使用Where子句和硬编码Catg01/catg 02,因为可以有多个类别.是否可以检测?如果是,那么请帮助.

Aln*_*tak 6

SELECT Catg, COUNT(*)
FROM myTable GROUP BY Catg
Run Code Online (Sandbox Code Playgroud)


Eoi*_*ell 5

Select Catg, Count(*) From TableName Group By CatG
Run Code Online (Sandbox Code Playgroud)

对于LINQ版本.想象一个班级

    class Table
    {
        public int ID { get; set; }
        public string CatG { get; set; }
    } 
Run Code Online (Sandbox Code Playgroud)

然后,如果您有该类的列表,则可以按如下方式查询

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());
}
Run Code Online (Sandbox Code Playgroud)