SQL得到的查询结果如何赋值给一个变量

sql 赋值,增加一个字段ID,现给这里面按时间和名子 给ID一个记录数,如图!

这行 SQL 从表中选择时间和名称,按名称对它们进行分组,然后按时间对它们进行排序以获得序列号。

在SQL中用update做统计,比如求平均值,求和的

哈,你说的那个场景我很熟悉!上周有客户问我如何使用update来添加统计数据,差点让我一口咖啡都吐出来了。

你举的例子已经很清楚了。
它是这样写的: sql 更新表 SET bb = (SELECT SUM(aa) FROM table)
实际上是可以将整个表的某一列的和直接填充到另一列中。
我过去曾使用过类似的操作,在 2 02 3 年 1 0 月为电子商务客户创建了一份报告。
他们希望自动计算总订单金额并填充用户的总支出字段。

但是我必须强调一下你提到的注意点!尤其是当表很大的时候,如果使用内联视图(也就是你写的SELECT SUM(aa) FROM table部分)来更新,SQL执行效率可能会比较慢。
我以前经历过这种情况,在一个有五十万条记录的表上执行此操作,查询卡住了将近十分钟!后来我改用子查询+JOIN的方法,或者干脆用SELECT计算总和并将其存储在变量中,然后更新。
速度立刻就加快了。

哦,对了,还有一种情况你应该注意,就是如果你的table表中的aa列有NULL值,SUM函数默认会忽略它。
如果您希望计算中包含 NULL,请使用 SUM(COALESCE(aa, 0))。
我在2 02 2 年北京某公司的一个项目中就遇到过这种情况。

说实话,这种update+stats的操作在数据仓库或者需要增量更新的场景中尤其常见。
但是,如何编写取决于您使用的数据库类型(例如,MySQL 和 PostgreSQL 可能有很大不同)以及表的具体情况。

您还有其他问题吗?比如这个更新会不会锁表,或者你bb列的数据类型需要能够保存aa的和?反正就看你自己了,先试试看效果,不行再调整。