我正在学习SQL并做一些练习。我不能给你确切的场景,因为我正在练习的网站不希望任何解决方案直接在网上找到,所以我会用其他的话来解释这种情况。我遇到的问题是使用带有X,Y和Z列的XYZ表。列X可以有重复项,列Z也可以。我需要找到的是Z在Z中始终具有相同的值。所以
X Y Z 1 ? a 1 ? a 2 ? b 2 ? c 3 ? c 3 ? a
会给我1,因为当X是1时,Z总是a。
我真正的问题是我觉得我缺少一些SQL知识才能实现这一目标。我很感激,如果有人能给我一个提示,而不是解决方案,但可能是我缺少的SQL知识的链接,或者可以让我这样做的SQL语句的简要说明。
否则祝你有个美好的一天。 大卫。
编辑:SELECT X FROM XYZ GROUP BY X HAVING COUNT(DISTINCT Z)= 1工作,我理解得很好。现在我无法理解的是如何将Z列添加到结果集中。
答案 0 :(得分:1)
select x, min(z)
from tab
group by x
having min(z) = max(z)
-- or
having count(distinct z) = 1
答案 1 :(得分:0)
有几个SQL简单函数可用于实现此目的。
DISTINCT
MSDN http://technet.microsoft.com/en-us/library/ms187831(v=SQL.105).aspx
GROUP BY
http://technet.microsoft.com/en-us/library/ms177673.aspx