在 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 有两列 a
和 count
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 BY
和 INSERT 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
我有两个 sql 表 t1 和 t2,我想用 t2 中的列中的唯一值的数量填充 t1 中的列。
示例:t1 有两列 a
和 count
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 BY
和 INSERT 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