T-SQL Group by When empty ResultSet
T-SQL Group by When empty ResultSet
空ResultSet和part recordselect如何在group by中计数
Table T 模式是
A 列 int,B 列 int
数据演示A是
A B
1 11
1 2
1 Null
2 1
2 21
3 12
3 Null
数据演示B是
A B
2 1
2 21
3 12
3 Null
4 11
4 2
4 Null
数据演示C是
A B
(empty record)
我想要 select 这个 ResultSet
A B
1 Bcount
2 Bcount
3 Bcount
4 Bcount
我的sql代码是
select A,Count(B) FROM T
group by A
当数据演示A时我输了A=4结果
当数据演示B我输了A=1结果
当数据演示 C 丢失所有结果时,ResultSet 为空。
这个问题还不清楚,但也许你在找
select v.A, count(t.b)
from (select 1 as A union select 2 union select 3 union select 4) as v
left join t on t.a = v.a
group by 1
您可以左联接到 VALUES
SELECT V.A, COUNT(T.B) AS Total_B
FROM (VALUES (1),(2),(3),(4)) V(A)
LEFT JOIN T ON (T.A = V.A)
GROUP BY V.A
ORDER BY V.A;
或者为 A 的值创建一个引用 table。
然后左连接到引用table.
CREATE TABLE REF_A (A INT PRIMARY KEY);
INSERT INTO REF_A (A) VALUES (1),(2),(3),(4);
SELECT A.A, COUNT(T.B) AS Total_B
FROM REF_A A
LEFT JOIN T ON (T.A = A.A)
GROUP BY A.A
ORDER BY A.A;
演示 db<>fiddle here
空ResultSet和part recordselect如何在group by中计数
Table T 模式是 A 列 int,B 列 int
数据演示A是
A B
1 11
1 2
1 Null
2 1
2 21
3 12
3 Null
数据演示B是
A B
2 1
2 21
3 12
3 Null
4 11
4 2
4 Null
数据演示C是
A B
(empty record)
我想要 select 这个 ResultSet
A B
1 Bcount
2 Bcount
3 Bcount
4 Bcount
我的sql代码是
select A,Count(B) FROM T
group by A
当数据演示A时我输了A=4结果
当数据演示B我输了A=1结果
当数据演示 C 丢失所有结果时,ResultSet 为空。
这个问题还不清楚,但也许你在找
select v.A, count(t.b)
from (select 1 as A union select 2 union select 3 union select 4) as v
left join t on t.a = v.a
group by 1
您可以左联接到 VALUES
SELECT V.A, COUNT(T.B) AS Total_B
FROM (VALUES (1),(2),(3),(4)) V(A)
LEFT JOIN T ON (T.A = V.A)
GROUP BY V.A
ORDER BY V.A;
或者为 A 的值创建一个引用 table。 然后左连接到引用table.
CREATE TABLE REF_A (A INT PRIMARY KEY);
INSERT INTO REF_A (A) VALUES (1),(2),(3),(4);
SELECT A.A, COUNT(T.B) AS Total_B
FROM REF_A A
LEFT JOIN T ON (T.A = A.A)
GROUP BY A.A
ORDER BY A.A;
演示 db<>fiddle here