首先,如果相关的话,我使用的是mysql,不过我假设一个解决方案可以跨db产品工作。我的问题是:
我有一张单列的简单桌子。列上没有约束。在这个列中有一些简单的数据,例如。
a
a
b
c
d
d
我需要得到只出现一次的值的数目/计数。从上面的例子可以看出是2(因为列中只有b和c出现一次)。
希望很明显我不想要不同的价值观,而是独特的价值观。实际上,我以前已经这样做了,创建了一个附加表,在列上有一个惟一的约束,然后简单地从旧表插入到新表中,相应地处理重复项。
我希望找到一个不需要临时表的解决方案,并且可以通过一个漂亮的选择来实现。
最佳答案
假设您的表名为T
,字段名为F
:
SELECT COUNT(F)
FROM (
SELECT F
FROM T
GROUP BY F
HAVING COUNT(*) = 1
) AS ONLY_ONCE