No estoy seguro si el título es lo suficientemente descriptivo (perdón por el mal inglés), pero mi problema es que necesito encontrar las filas que tienen el mismo valor en todas las filas.
Posiblemente sea más fácil entender lo que realmente quiero decir con un ejemplo: tengo una tabla que se llama Catálogo con los atributos motortype, motorpart y partnumber donde motortype y motorpart son VARCHAR y partnumber son int.
Algunos números de pieza se utilizan en todos los tipos de motor, y son esos números de pieza los que estoy interesado en encontrar.
Estoy teniendo dificultades para ver cómo resolver esto, ¡así que cualquier ayuda sería muy apreciada!
EDITAR: Lo siento si la pregunta fue deficiente o mala. He actualizado con el esquema de la tabla, algunos datos de muestra y mis resultados deseados en:
CREATE TABLE Catalogue ( motortype VARCHAR, motorpart VARCHAR, partnumber int, PRIMARY KEY (partnumber) );Data de muestra:
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);Resultado deseado:
| motorpart | partnumber | |-----------|------------| | Brakes | 1 |¡Espero que esto haya sido mejor formulado!
Si hay 3 tipos diferentes, puede usar la siguiente consulta:
select motorpart from Catalogue group by motorpart having count(distinct motortype) >= 3;Si no sabes el número:
select motorpart from Catalogue group by motorpart having count(distinct motortype) = (select distinct motortype from Catalogue);Rextester aquí