[英]sql query to find unique combination of column data
我正在尝试编写sql查询,该查询将从表中选择不同的列组合。
表格数据示例:
+--+---+---+---+
|id|fk1|fk2|fk3|
+--+---+---+---+
|1 |1 |2 |3 |
+--+---+---+---+
|2 |1 |3 |3 |
+--+---+---+---+
|3 |2 |2 |3 |
+--+---+---+---+
|4 |2 |4 |3 |
+--+---+---+---+
|5 |3 |2 |3 |
+--+---+---+---+
|6 |3 |3 |3 |
+--+---+---+---+
|7 |3 |4 |3 |
+--+---+---+---+
在这里,我需要编写一个查询,该查询将返回fk1 => 2
因为它具有fk2 => 2 and 4
唯一组合
如果问题不清楚,请告诉我。
谢谢
我懂了。 值“ 2”和“ 4”是查询的输入,而您恰好需要该组合。 这是一个集内查询,我认为使用having
子句进行聚合是最灵活的方法。
select fk1
from table t
group by fk1
having sum(fk2 = 2) > 0 and
sum(fk2 = 4) > 0 and
sum(fk2 not in (2, 4)) = 0;
也就是说,密钥fk1
的值为2
(至少一次),值为4
,并且没有其他值。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.