不确定标题是否足够描述(抱歉英文不好),但我的问题是我需要找到所有行中具有相同值的行。
通过示例可能更容易理解我的意思: 我有一个名为Catalog的表,其属性为motortype,motorpart和partnumber,其中motortype和motorpart为VARCHAR,partnumber为int。
在所有的摩托车类型中都使用了一些partnumbers,这是我有兴趣寻找的那些部分号。
我很难看到如何解决这个问题,所以非常感谢任何帮助!
编辑: 对不起,如果问题不严重或不好。我已经更新了表模式,一些示例数据和我想要的结果:
CREATE TABLE Catalogue (
motortype VARCHAR,
motorpart VARCHAR,
partnumber int,
PRIMARY KEY (partnumber)
);
示例数据:
INSERT INTO Catalogue VALUES ('M1', 'Brakes', 1);
INSERT INTO Catalogue VALUES ('M2', 'Brakes', 1);
INSERT INTO Catalogue VALUES ('M3', 'Brakes', 1);
INSERT INTO Catalogue VALUES ('M1', 'Gasket', 2);
INSERT INTO Catalogue VALUES ('M2', 'Gasket', 2);
INSERT INTO Catalogue VALUES ('M3', 'Pedal', 3);
期望的结果:
| motorpart | partnumber |
|-----------|------------|
| Brakes | 1 |
希望这更好地制定!
答案 0 :(得分:0)
如果有3种不同类型,您可以使用下一个查询:
select motorpart
from Catalogue
group by motorpart
having count(distinct motortype) >= 3;
如果您不知道号码:
select motorpart
from Catalogue
group by motorpart
having count(distinct motortype) = (select distinct motortype
from Catalogue);
Rextester here