coisini002 2023-02-23 16:38 采纳率: 51.3%
浏览 42
已结题

要查询统计每门课各班的平均成绩

S(SNO,NAME,SEX,CLASS);C(CNO,CNAME,TIME);
SC(SNO,CNO,DEGREE)

若要查询统计每门课各班的平均成绩和每门课的平均成绩以及总的平均成绩,下列语句正确的是( )
(A)select class, cname, avg(degree) as平均分from s, sc, c where = and c. cno= group by , c. cname with rollup
(B)select class, cname, avg(degree) as平均分from s, sc, c where = and c. cno =sc. cno group by s. class, c. cname with cube
问一下with roll up 和with cube啥区别,没用过

  • 写回答

2条回答 默认 最新

  • simleeyes 2023-02-23 17:01
    关注

    选择A。
    区别是:
    with rollup 选项可以用来生成子总计(subtotals),即对 GROUP BY 中每个列的不同取值分别计算汇总值,并在结果集中添加一行,该行中该列的值为 NULL。同时,还会生成一行总计(grand total),即将所有数据汇总到一起的值,该行中所有列的值均为 NULL。

    with cube 选项可以生成更加全面的汇总数据,它会为 GROUP BY 子句中每个列的所有可能组合计算汇总值,并在结果集中添加一行,该行中每个列的值都为 NULL。例如,如果有两个 GROUP BY 列,那么 with cube 将生成 4 行汇总数据,包括总计、每个列的子总计以及这两个列所有可能组合的汇总数据。

    因此,with rollup 生成的汇总数据比较简单,只包括子总计和总计;而 with cube 生成的汇总数据比较全面,包括所有列的子总计和总计,但是数据量也更大,可能需要更长的时间来计算和返回结果。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月3日
  • 已采纳回答 2月23日
  • 创建了问题 2月23日

悬赏问题

  • ¥15 ansys fluent计算闪退
  • ¥15 有关wireshark抓包的问题
  • ¥15 需要写计算过程,不要写代码,求解答,数据都在图上
  • ¥15 向数据表用newid方式插入GUID问题
  • ¥15 multisim电路设计
  • ¥20 用keil,写代码解决两个问题,用库函数
  • ¥50 ID中开关量采样信号通道、以及程序流程的设计
  • ¥15 U-Mamba/nnunetv2固定随机数种子
  • ¥15 vba使用jmail发送邮件正文里面怎么加图片
  • ¥15 vb6.0如何向数据库中添加自动生成的字段数据。