我如何选择在C列中有X或Y但在Postgres中没有两者的行?基本上B列中不应有重复值。
数据:
A | B | C |
----------------------------------------
1 | John | X |
----------------------------------------
2 | John | Y |
----------------------------------------
3 | Sam | X |
----------------------------------------
4 | May | Y |
结果:
A | B | C |
----------------------------------------
1 | John | X |
----------------------------------------
3 | Sam | X |
----------------------------------------
4 | May | Y |
2条答案
按热度按时间bttbmeg01#
可以使用DISTINCT ON子句:
在这种情况下,您将获得每个唯一B值中的第一行。
如果需要使用特殊条件进行筛选,也可以使用WINDOW FUNCTIONS或GROUP BY子句。
7ivaypg92#
首先,您可以为每个名称计算'X'和'Y'的出现次数(这是x_or_y所做的),然后只选择count = 1的名称
enter link description here