我正在为Microsoft Access中的工作编写查询。 Raw表看起来像这样:
列
ColA | ColB
aa | X
aa | ÿ
bb | X
bb | x
我想解决的问题是:对于A列中的每个不同值,B列中不同值的计数是多少?
输出类似于:
aa | 2
bb | 1
我想更进一步,只选择count = 1的那些,所以:
bb | 1
将是唯一的结果。
我已经找到了我认为是一个过于复杂的子查询来实现这一点,但我希望有人有一个更优雅的解决方案。
由于
答案 0 :(得分:1)
要选择只有一个A
值的B
值,您可以使用:
select t.A
from mytable as t
group by t.A
having min(t.B) = max(t.B);
在考虑重复时忽略NULL
个值。如有必要,可以考虑这一点。此外,计数似乎是多余的,因为它总是1。
答案 1 :(得分:0)
我想出的解决方案是:
SELECT X.A, COUNT(X.B)
FROM (
SELECT D.A, D.B
FROM MY_TABLE as D
GROUP BY D.A, D.B
) AS X
GROUP BY X.A
HAVING COUNT(X.B) = 1