在我的数据库中,我有3个字段:
property_id
e_id
name
我需要知道registers
具有相同的property_id
和名称,但不同的e_id
。
答案 0 :(得分:3)
聚合属性和名称,然后计算不同e_id
值的数量:
SELECT property_id, name
FROM yourTable
GROUP BY property_id, name
HAVING COUNT(DISTINCT e_id) > 1
请注意,如果property_id
是唯一确定名称的主键,那么我们可以按属性进行汇总。
答案 1 :(得分:0)
自我联接可用于查找属性和名称的匹配项;并且通过使用<在E_ID上,我们确保我们只获得1个记录匹配,而不是它的反转。
假设
所以
+-------------+------+-------+---+
| Property_ID | E_ID | Name | |
+-------------+------+-------+---+
| 1 | 1 | A | |
| 1 | 1 | A | |
| 2 | 1 | Test | |
| 2 | 2 | Test | |
| 3 | 2 | Test2 | |
| 3 | 3 | Test3 | |
| 4 | 4 | Test4 | |
| 5 | 5 | Test5 | |
| 6 | 7 | Test6 | |
| 6 | 6 | Test6 | |
+-------------+------+-------+---+
数据:
+-------------+------+-------+---+
| 2 | 1 | Test | 3 |
| 6 | 6 | Test6 | 7 |
+-------------+------+-------+---+
给予:
+-------------+------+-------+---+
| | | | |
| 2 | 2 | Test | 1 |
| 6 | 7 | Test6 | 6 |
+-------------+------+-------+---+
但不是:
#include<stdio.h>
#include<string.h>
//Read only region start
char* factorial (int input1)
{
//Read only region end
//Write code here
}
答案 2 :(得分:0)
SELECT e_id, property_id, name
FROM table1
WHERE e_id in (SELECT e_id
FROM table1
GROUP BY e_id
HAVING count(e_id) > 1)
答案 3 :(得分:-1)
您可以在此处使用group by子句 您的查询将是
select property_id, e_id , name from your_table groupby e_id