GROUP BY和集合函数

使用集函数

SQL提供了许多集函数,主要包括:

26 查询学生总人数。

SELECT   COUNT ( * AS  Expr1  FROM  student

 27 查询选修了课程的学生人数。

注:前者是正确的,后者是没有加DISTINCT修饰的情况。

SELECT   COUNT ( DISTINCT   Sno)  AS  Expr1  FROM  SC

SELECT   COUNT (Sno)  AS  Expr1  FROM  SC

28计算1号课程的学生平均成绩。

SELECT   AVG (Grade)  FROM  SC   WHERE  Sno = ' 1 '

29 查询学习1号课程的学生最高分数。

SELECT   MAX (Grade)  FROM  SC  WHERE  Sno = ' 1 '
五、对查询结果分组

GROUP BY子句可以将查询结果表的各行按一列或多列值分组,值相等的为一组。

对查询结果分组的目的是为了细化集函数的作用对象。如果未对查询结果分组,集函数将作用于整个查询结果,即整个查询结果只有一个函数值。否则,集函数将作用于每一个组,即每一组都有一个函数值。

30 查询各个课程号与相应的选课人数。

SELECT  Cno,  Count (Sno)  AS  Expr1  FROM  SC  GROUP   BY  Cno 

31 查询选修了2门以上课程的学生的学号。

SELECT  Sno  FROM  SC  GROUP   BY  Sno  HAVING  ( COUNT ( * ) > 2 )

 

WHERE子句与HAVING短语的区别在于作用对象不同。WHERE子句作用于基本表或视图,从中选择满足条件的元组。HAVING短语作用于组,从中选择满足条件的组。

先用 GROUP BY 子句按 Sno 分组,再用集函数 COUNT 对每一组计数。 HAVING 短语指定选择组的条件,只有满足条件(即元组个数 >3 ,表示此学生选修的课超过 3 门)的组才会被选出来。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 在C#中使用MongoDB的聚合函数,语法是先分组再排序的。这与一些其他数据库的语法规则可能不同。如果你在MongoDB中反过来写,会导致编译错误。所以在使用聚合函数,请确保按照正确的顺序编写代码。\[1\] 另外,如果你想在C#中调用MongoDB的聚合函数,你可以使用MongoDB的官方驱动程序。你可以通过连接到MongoDB数据库,然后使用聚合管道来执行group by操。以下是一个示例代码片段,展示了如何在C#中使用MongoDB的聚合函数: ```csharp public static void GroupByFunction() { var client = new MongoClient("mongodb://localhost:27017"); var database = client.GetDatabase("yourDatabaseName"); var collection = database.GetCollection<BsonDocument>("yourCollectionName"); var pipeline = new BsonDocument\[\] { new BsonDocument("$group", new BsonDocument { { "_id", "$yourGroupByField" }, { "count", new BsonDocument("$sum", 1) } }), new BsonDocument("$sort", new BsonDocument { { "count", -1 } }) }; var result = collection.Aggregate<BsonDocument>(pipeline).ToList(); foreach (var document in result) { Console.WriteLine(document); } } ``` 在上面的示例中,我们首先创建了一个MongoClient对象,然后连接到MongoDB数据库。接下来,我们获取了要操集合。然后,我们定义了一个聚合管道,其中包含了group和sort操。最后,我们使用Aggregate方法执行聚合操,并将结果打印出来。请注意,你需要根据你的实际情况修改代码中的数据库名称、集合名称和分组字段。\[2\] 希望这个解答能够帮到你!如果还有其他问题,请随提问。 #### 引用[.reference_title] - *1* [C#中使用MongoDB学习笔记(四):在C#中使用聚合函数](https://blog.csdn.net/a882557/article/details/101148871)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [C#代码利用MongoDB中Group聚合函数查询](https://blog.csdn.net/weixin_34205826/article/details/86192354)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [mongoDB聚合函数](https://blog.csdn.net/Best_Lynn/article/details/125007333)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^control_2,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值