varios registros promedio funciones funcion ejemplo datos contar consultas campos avg agrupar agrupamiento agrupados agrupadas agregacion sql count group-by

promedio - sql contar registros agrupados



Cómo usar count y group by en la misma instrucción select (10)

Con Oracle puedes usar funciones analíticas:

select town, count(town), sum(count(town)) over () total_count from user group by town

Sus otras opciones es usar una subconsulta:

select town, count(town), (select count(town) from user) as total_count from user group by town

Tengo una consulta de selección sql que tiene un grupo por. Quiero contar todos los registros después del grupo por declaración. ¿Hay alguna forma de hacerlo directamente desde sql? Por ejemplo, al tener una mesa con usuarios, quiero seleccionar las diferentes ciudades y el número total de usuarios

select town, count(*) from user group by town

Quiero tener una columna con todas las ciudades y otra con la cantidad de usuarios en todas las filas.

Un ejemplo del resultado para tener 3 ciudades y 58 usuarios en total es:

Town Count Copenhagen 58 NewYork 58 Athens 58


Esto hará lo que quiera (lista de ciudades, con el número de usuarios en cada una):

select town, count(town) from user group by town

Puede usar la mayoría de las funciones agregadas cuando usa GROUP BY .

Actualización (después del cambio a pregunta y comentarios)

Puede declarar una variable para la cantidad de usuarios y establecerla en la cantidad de usuarios, luego seleccione con eso.

DECLARE @numOfUsers INT SET @numOfUsers = SELECT COUNT(*) FROM user SELECT DISTINCT town, @numOfUsers FROM user


La otra forma es:

/* Number of rows in a derived table called d1. */ select count(*) from ( /* Number of times each town appears in user. */ select town, count(*) from user group by town ) d1


Pruebe el siguiente código:

select ccode, count(empno) from company_details group by ccode;



Puede usar DISTINCT dentro de COUNT como lo que dijo milkovsky

en mi caso:

select COUNT(distinct user_id) from answers_votes where answer_id in (694,695);

Esto hará que el recuento de votos de respuesta se considere el mismo ID de usuario que un recuento


Sé que esta es una publicación anterior, en SQL Server:

select isnull(town,''TOTAL'') Town, count(*) cnt from user group by town WITH ROLLUP Town cnt Copenhagen 58 NewYork 58 Athens 58 TOTAL 174


Si desea seleccionar la ciudad y el recuento total de usuarios, puede usar esta consulta a continuación:

SELECT Town, (SELECT Count(*) FROM User) `Count` FROM user GROUP BY Town;


Si quieres ordenar por conteo (suena simple pero no puedo encontrar una respuesta en la pila de cómo hacerlo) puedes hacer:

SELECT town, count(town) as total FROM user GROUP BY town ORDER BY total DESC


si desea usar Seleccionar todas las consultas con la opción de conteo, intente esto ...

select a.*, (Select count(b.name) from table_name as b where Condition) as totCount from table_name as a where where Condition