分组查询的结果集可以用select into 创建新表

本文介绍了一种使用SQL语句创建统计表的方法。通过一个具体的例子展示了如何从现有的表中选择特定字段并进行计数,然后将这些数据组织到新的表中以方便进一步的数据分析。

CREATE TABLE t AS
SELECT * 
FROM (SELECT COUNT(*) AS n, classname 
  FROM classInfo AS c1 
  GROUP BY classname) 

### 使用 `SELECT INTO` 创建 `age_avg` 并插入每个班的学生平均年龄数据 可以通过 `SELECT INTO` 语句一次性完成从原始中计算每个班级的平均年龄并将结果存储到新的 `age_avg` 中的操作。以下是具体的实现方法: #### 1. 使用 `SELECT INTO` 创建并填充 `age_avg` 如果目标是在单条 SQL 命令下既创建目标又填入数据,则可采用如下形式的查询语句: ```sql SELECT class_id, AVG(age) AS avg_age INTO age_avg FROM student GROUP BY class_id; ``` 这条指令的功能是从现有的 `student` 里选出按 `class_id` 分组后的每组学生的平均年龄,并把这些汇总好的信息直接导入建出来的 `age_avg` 之中[^1]。在此过程中,系统会自动依据所选字段建立起具有适当结构的 `age_avg`,其中包括两个主要组成部分:一个是用来标识各个不同班级的身份码 `class_id`;另一个则是代该类别全体成员共同特征的一个统计数据——他们的平均年纪 `avg_age`[^3]。 值得注意的是这种方法适用于某些数据库管理系统(DBMS),像 Microsoft SQL Server 支持这种语法风格,但在其他一些 DBMS 上可能会有不同的写法或者根本不支持这样的功能。对于 MySQL 用户来说,他们通常需要先手动构建好接收端格再实施后续动作[^2]。 --- #### 如果您正在使用的环境不完全兼容上述做法的话,请考虑下面这种方式作为替代方案: 首先定义一个新的格架构去接纳即将产生的分析成果: ```sql CREATE TABLE IF NOT EXISTS age_avg ( class_id INT, avg_age FLOAT ); ``` 接着执行一条标准的选择命令附加额外的动作项—将所得出的各项指标送至预先准备完毕的目的地中去: ```sql INSERT INTO age_avg (class_id, avg_age) SELECT class_id, AVG(age) AS avg_age FROM student GROUP BY class_id; ``` 这一步骤同样能够达成预期效果,即把有关各类别学员群体的一般状况总结起来放进专门设立的小结文档里面供以后查阅使用[^2]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值