gpt4 book ai didi

sql - TSQL:如何编写这个查询?

转载 作者:行者123 更新时间:2023-12-05 00:14:41 27 4
gpt4 key购买 nike

我有一个查询,它返回一个如下所示的结果集:

A   |   B
---------------------
1 | a
2 | a
1 | b
1 | c
3 | d

A|B 在结果中是唯一的(即只有一个 1|a 行)

我需要根据这些结果编写两个查询。第一个:

给定A的值(比如1),计算只有一行的B的数量; A 列中有 1

所以在上面的数据集中,id期望返回值2,因为Bbc 各只有一行,其中这些行在 A 列中有一个 1d 不会被计算在内,因为它对应于 3 并且不会返回 a 因为它有一个带有 2 的附加行.

希望这是有道理的。

第二个查询与上面相反。

给定 A 的值(比如 1),计算具有 2 行或更多行的 B 的数量,其中一个rows 在 A 列中有一个 1

所以在上面的数据id中期望返回1,因为Ba是只有一个有多行,其中一个在 A 列中有 1

谢谢

最佳答案

用途:

declare @t table(A int, B char(1))

insert @t values
(1, 'a'),
(2, 'a'),
(1, 'b'),
(1, 'c'),
(3, 'd')

declare @x int = 1

select COUNT(*)
from @t t
where t.A = @x
and not exists(select 1 from @t t2 where t2.B = t.B and t2.A <> @x)

select COUNT(*)
from @t t
where t.A = @x
and exists(select 1 from @t t2 where t2.B = t.B and t2.A <> @x)

查询提供了完全想要的结果:

-----------
2

-----------
1

关于sql - TSQL:如何编写这个查询?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9411217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com