在 sql table 中的一列中填入来自其他 table 的一列的唯一值的数量

Fill a column in sql table with the number of unique values of a column from other table

我有两个 sql 表 t1 和 t2,我想用 t2 中的列中的唯一值的数量填充 t1 中的列。

示例:t1 有两列 acount

   a   count
1  1  
2  1  
3  2

示例:t2 有一个列 b

   b 
1  3  
2  3  
3  2
4  5
5  5

t2 在 b 列中有 3 个唯一值,我希望 t1 像这样,第 count 列由 t2.b

中唯一值的数量填充
   a  count
1  1  3
2  1  3
3  2  3

不确定我是否理解错了你的问题。 我猜您想找出 t2 中所有不同的值及其计数。 你需要的是 GROUP BYINSERT INTO ... SELECT

CREATE TABLE t1
(
   a INTEGER,
   count INTEGER
);


CREATE TABLE t2
(
   b INTEGER
);

INSERT INTO t2 VALUES(1);
INSERT INTO t2 VALUES(1);
INSERT INTO t2 VALUES(1);
INSERT INTO t2 VALUES(2);
INSERT INTO t2 VALUES(2);
INSERT INTO t2 VALUES(3);

INSERT INTO t1
    (a, count)
SELECT
    b,
    count(b)
FROM
    t2
GROUP by
    b;
    
SELECT * FROM t1;

创建你的表

declare @t1 table(
   FIELD1 INTEGER  NOT NULL PRIMARY KEY 
  ,a      INTEGER  NOT NULL 
);
INSERT INTO @t1(FIELD1,a) VALUES (1,1);
INSERT INTO @t1(FIELD1,a) VALUES (2,1);
INSERT INTO @t1(FIELD1,a) VALUES (3,2);

declare @t2 table(
  b      INTEGER  NOT NULL
);
INSERT INTO @t2(b) VALUES (3);
INSERT INTO @t2(b) VALUES (3);
INSERT INTO @t2(b) VALUES (2);
INSERT INTO @t2(b) VALUES (5);
INSERT INTO @t2(b) VALUES (5);

你的select

select FIELD1,a

,(select count(distinct b) from @t2) as count1 

from @t1