表格基本上是这样的:
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问题。)
答案 0 :(得分:10)
使用count()聚合和'having'子句:
select observation_id, element_id, count(*) from Data group by observation_id, element_id having count(*) > 1