Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

180
Vistas
Seleccionar campos que no están en GROUP BY cuando no se permiten SELECCIONES anidadas

tengo las tablas:

 Product(code (PK), pname, (....), sid (FK)), Supplier(sid(PK), sname, (....))

La tarea es:

Encuentre proveedores que suministren un solo producto. Muestre su nombre ( sname ) y el nombre del producto ( pname ).

Me parece un problema de GROUP BY , así que usé:

 SELECT sid FROM Product GROUP BY sid HAVING CAST(COUNT(*) AS INTEGER) = 1;

Esta consulta me ha encontrado la lista de sid que suministran un solo producto, pero ahora he encontrado un problema:

  • La asignación prohíbe cualquier forma de consultas SELECT anidadas.
  • El resultado de la consulta que he escrito tiene solo una columna. (La columna sid )
  • Por lo tanto, no puedo acceder al nombre del producto porque no está en la tabla de resultados de la consulta, y si lo hubiera agregado a la instrucción GROUP BY , la agrupación también se basará en el nombre del producto, lo cual es un comportamiento no deseado.

¿Cómo debo abordar el problema, entonces?

Nota: yo uso PostgreSQL

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puede formular la consulta como:

 SELECT s.sid, s.sname, MAX(p.pname) as pname FROM Product p JOIN Supplier s ON p.sid = s.sid GROUP BY s.sid, s.sname HAVING COUNT(*) = 1;

No necesita convertir COUNT(*) a un número entero. Ya es un número entero.

over 4 years ago · Santiago Trujillo Denunciar

0

podrías poner

 max(pname)

en la lista SELECT . Eso es un agregado, por lo que estaría bien.

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda