SQL查找组中重复的外键
·
问题:SQL查找组中重复的外键
基本上像这样的表:
Elements
id INT PRIMARY KEY
...
Observations
id INT PRIMARY KEY
...
Data
id INT PRIMARY KEY
observation_id FOREIGN KEY
element_id FOREIGN KEY
value FLOAT
...
我想找到在单个observation_id
中有重复element_id
的所有observation_id
。例如,如果我有Data
记录,例如:
1|50|23|4.5
2|50|24|9.9
3|66|23|4.4
4|66|23|4.1
然后查询将报告observation_id``66
,因为它有两个与element_id``23
关联的行。
(我使用的是 PostgreSQL,但这可能是一个基本的 SQL 问题。)
解答
将 count() 聚合与“have”子句结合使用:
选择观察_id,元素_id,计数(*)
从数据
按观察_id、元素_id 分组
计数(*) > 1
更多推荐
所有评论(0)