Pregunta SELECCIONAR MAX de COUNT


Tengo una mesa "bien". Contiene una columna app_rate_unit (type: nvarchar). Mi objetivo es contar cada valor distinto en la tabla y dejar que el DBMS (MS Server 2005) me proporcione el que más se presenta.

Este es mi código:

SELECT MAX(app_rate_unit) AS MAX_APP
  FROM (SELECT app_rate_unit, COUNT(*) AS co
          FROM dbo.well AS w
         GROUP BY app_rate_unit
        ) AS derivedtbl_1

Sin embargo, el problema con esto es que mi DBMS en realidad me ofrece la cuenta más baja.

SideQuestion: ¿Cómo puedo filtrar una clave externa (en la tabla) y NO NULL (en app_rate_unit) al contar?


7
2017-07-25 09:13


origen


Respuestas:


select top 1 app_rate_unit, count(*) from dbo.well
group by app_rate_unit
order by count(*) desc

15
2017-07-25 09:29



Prueba esto

    SELECT 
        COUNT(app_rate_unit)AS MAX_APP , 
        app_rate_unit 
    FROM 
        dbo.well
    WHERE
            app_rate_unit IS NOT NULL
    GROUP BY 
        app_rate_unit 
    ORDER BY 
            MAX_APP DESC

La secuencia de comandos anterior le dará la cuenta y el artículo. Puede cambiar el recuento si no está seguro de que solo un elemento tendrá el número máximo de ocurrencias.


1
2017-07-25 09:32



select top 1 count(*) as co from dbo.well as w group by app_rate_unit
order by count(*) desc

0
2017-07-25 09:24



En PostgreSQL podemos escribir una consulta que usa el máximo de conteo como

select max(count) from (

select count(id) from Table _name group by created_by,status_id having status_id = 6 ) as Alias

p.ej

select max(count) from (

select count(id) from orders group by created_by,status_id having status_id = 6 ) as foo

0
2018-06-03 07:11