如何用SQL将另一张表某列的唯一值数量填充到当前表指定列
SQL实现方案
你可以直接通过子查询先计算t2的b列唯一值总数,再批量更新t1的count列,通用SQL写法如下:
UPDATE t1 SET `count` = (SELECT COUNT(DISTINCT b) FROM t2);
注意:
count属于SQL内置关键字,示例中用反引号包裹避免语法冲突,你可以根据自己使用的数据库规则调整关键字的转义写法。
逻辑说明
- 子查询
SELECT COUNT(DISTINCT b) FROM t2会统计t2表b列去重后的总条数,你给出的示例中该查询返回值为3 - 上述UPDATE语句没有加WHERE筛选条件,会将t1表所有行的
count列都更新为子查询的结果,和你预期的输出完全匹配,兼容MySQL、PostgreSQL、SQL Server等绝大多数主流数据库。
内容的提问来源于stack exchange,提问作者MOH
相关产品推荐
相关产品推荐

