sql group by count
SQL: seleccione dos columnas por columna individual en grupo por solo con la condiciĆ³n (2)
Para responder a la pregunta, no, no puede incluir una columna en la selección que no estaba en la agrupación a menos que tenga algún tipo de analítica. Debe usar el análisis para decirle a Oracle cómo manejar múltiples filas.
Dado que se garantiza que solo tiene un tipo, un máximo simple sería seguro.
SELECT maker, MAX(TYPE) AS type
FROM product
GROUP BY maker
HAVING COUNT(MODEL) > 1 AND COUNT(DISTINCT TYPE) = 1
Soy un poco nuevo en SQL; Tengo una sola tabla Productos:
maker model type
A 1232 PC
A 1233 PC
A 1276 Printer
A 1298 Laptop
A 1401 Printer
A 1408 Printer
A 1752 Laptop
B 1121 PC
B 1750 Laptop
C 1321 Laptop
D 1288 Printer
D 1433 Printer
E 1260 PC
E 1434 Printer
E 2112 PC
E 2113 PC
Necesito seleccionar crear un tipo por fabricante que tenga más de 1 modelo, pero todos esos modelos son de un solo tipo. Entonces la salida debería ser
maker type
D Printer
Cuando realizo la agrupación solo por fabricante todo está bien, pero cuando uso maker y type = todo sale mal :( ¿Es posible realizar un grupo por una sola columna pero tener 2 en la salida? La respuesta correcta sin un tipo devuelve la siguiente consulta:
Select maker from product
group by maker
having count(model)>1
and count(distinct type)=1
Pero cuando selecciono fabricante, escriba - va mal :( también es incorrecto cuando use seleccionar fabricante, tipo y grupo por fabricante, escriba
Pasé cerca de 4 horas para resolver eso, agradeceré mucho su ayuda ¡Gracias de antemano!
Usted está buscando esto:
SELECT MAKER, TYPE, COUNT(*) AS NUMBER_OF_MODELS
FROM PRODUCT
GROUP BY MAKER, TYPE
HAVING COUNT(*) > 1