繁体   English   中英

sql查询以查找列数据的唯一组合

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM