当前位置:首页 » 编程语言 » Sql汇总后写回原表
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

Sql汇总后写回原表

发布时间: 2022-09-19 21:08:10

1. sql多表格式相同汇总到一张表的语句

select A.id,A.name,sum(A.成绩)
from
(select * from 语文成绩表
union all
select * from 数学成绩表
union all
select * from 物理成绩表
) A
group by A.学号,A.姓名

UNION ALL的用途是将几个成绩表合并成为一个表A。然后按照A表的学号和姓名字段进行分组合计。

有不明白的再问我

2. sql汇总的数据如何更新到另一个表单

UpdateTable2SetSum1=(SelectSum(b)FromTable1)Whereid=123

大概是这个样子

3. 如何通过SQL语句从数据库读取数据,在把读到的数据写入另一个新建表中去删除原来表

1)首先针对每天执行的问题,各个操作系统都有计划任务(如linux和unix都可以通过crontab实现。windows就是计划任务啦),可以通过这个实现每天执行的目的。
2)每天执行的东西就是写好存储过程,存储过程内容如下:
* 如果表记录数不多可以采用如下方法
insert into 新表 select * from 原表;
delete from 原表;
*如果记录过多,可以采用如下方法
先采用不写日志的方式插入记录(如oracle采用insert append方式,sqlserver采用select into的方式),然后用truncate table 原表的方式加快执行速度,提高运行效率。

4. SQL怎么将查询排序后的数据更新到原本的表中

简单回答:不能,也不应该。
要依某个顺序查询,请加入明确的排序指令,否则系统就会依系统认为最方便高效的方式给你列出数据。

相关说明:
1、当前主流的使用SQL操作的数据数主要是Oracle、MS Sql Server等等。它们有一个共同的做法,就是用户不应对表中的物理记录的顺序进行关心。如果用户需要对查询出的记录进行排序的话,请加入排序指令,这样就能按用户的“心意”进行排序列出了。
2、之所以用户不应对表中的特理记录的顺序进行关心,那是因为通常情况下,一个表中的数据是会经常被更改、修正、删增的,如果每一次的改动都要将整个表的物理顺序进行修正的话,系统的运行效率就会严重低下。
3、如果你实在纠结,实在要在明确的排序指令的情况下查出的数据也按你的想法的顺序出来的话,一般来说,小的数据表你可以将原来的数据删除,然后重新追回进去。具体的做法类似于先SELECT,加order排序指令插入到临时表,然后删除原来表中的数据,然后insert临时表中的数据到原表中。注意的是,这种方法对数据量不大的表,多数情况下有效,但对大量数据的表,很可能无效,因为系统为了效率,会按它的“想法”去读写数据。

5. sql 如和循环插入,我查询出一组数据,修改后如何快速插回原表

如下:

inset into oa_user_prop (prop_id,role_id,user_id,user_realname)

select SEQ_MAXID_OA_USER_PROP.nextval,1825,user_id,user_realname

oa_user_prop where role_id=1816

6. sql 汇总写入

update
a
set
a.工资数=b.总工资
from
第一个表a
innerjoin(select工人编号,sum(钱数)总工资from第二个表groupby工人编号)bona.编号=b.工人编号

7. sql如何把分类汇总结果导入其他表中

insert into 汇总表(字段列表)
select 分组字段,汇总值
from 原表
group by 分组字段;

8. SQL数据库中对数据进行汇总统计后的数据进行新的汇总查询语句怎么写

一看IMSI就知道是搞网优的苦/逼


1.我用oracle写的,语法大致差不多,试试吧。

2.IMSI我记得好像是字符型的,但是连接时长那个我不记得是什么类型了,我当成字符型来写的。

3.你中间说对IMSI进行统计,并对连接时长求和,后面又说对IMSI出现数量计数,并对IMSI时长继续汇总??


我的理解你是要统计有哪些IMSI,然后这些IMSI分别出现了多少次,连接时长总和多少,是这样吗?把之前的SQL稍微改了下。


连接时长我用connect_time代替了,假设连接时长类型是字符型的,我直接转成to_number,如果你倒出来的表里面连接时长是时间类型的话,把sum()里面的内容换成to_number(to_char(connect_time))


selectIMSI,count(IMSI),sum(to_number(connect_time))fromtable_a

groupbyIMSI

havingcount(IMSI)between1and10


9. 我有一个sql数据库,想要使用sql语句,将两个表,A表余额列减去B表的余额列,写回A表,这个sql语句怎么写

update A set a.jine =(select a.jine-b.jine from b ) where a.kahao = b.kahao