¿Selecionar el Max() de una función Count()?

Iniciado por DanteInfernum, 13 Octubre 2013, 18:15 PM

0 Miembros y 1 Visitante están viendo este tema.

1mpuls0

#10
-_-

Código (sql) [Seleccionar]

INSERT [dbo].[Seguros] ([seguro_folio], [vendedor_fk]) VALUES (314, 4)


Código (sql) [Seleccionar]

SELECT * FROM (SELECT MAX(contador) AS maximo FROM
(SELECT vendedor_fk, COUNT(vendedor_fk) contador
FROM dbo.Seguros GROUP BY vendedor_fk ) AS M
) AS M
INNER JOIN
(SELECT COUNT(*) AS ventas, vendedor_fk FROM dbo.Seguros
GROUP BY vendedor_fk) AS  T ON M.maximo=T.ventas


Perdona la identación del código.

Deja ver si puedo simplificar más la consulta... y bueno espero que sea lo que buscas.

Edito.

Aquí otra forma.

Código (sql) [Seleccionar]

SELECT * FROM (
SELECT COUNT(*) AS ventas, vendedor_fk FROM dbo.Seguros GROUP BY vendedor_fk
) AS V WHERE V.ventas=(SELECT MAX(contador) AS maximo FROM
(SELECT vendedor_fk, COUNT(vendedor_fk) contador
FROM dbo.Seguros GROUP BY vendedor_fk ) AS M)


Saludos.
abc

DanteInfernum

Sí, es eso mismo. Gracias por todo.

Me gusta el hecho de que no utilizas ninguna sentencia especial en tu cógido. Eso es bueno para tener una idea más clara de qué es lo que realmente se está haciendo. Ahora entiendo mucho mejor dónde puedo utilizar las subconsultas y para qué sirve darles un alias.

Saludos.