utf8_unicode_ci not ejemplo mysql sql select

utf8_unicode_ci - not in mysql ejemplo



Los usuarios seleccionados tienen más de un registro distinto en mysql (3)

Para una tabla que contiene los registros del comportamiento de visitas de las páginas web de los usuarios, ¿cómo puedo seleccionar los usuarios que visitan más de una página web?

La estructura de estas tablas es:

userId webpageId visitTime 0 123 ... 0 124 ... 1 123 ... ... ... ...

Puedo contar usando:

SELECT userId, COUNT(DISTINCT webpageId) AS count FROM visits GROUP BY userId;

Me da el resultado como:

userId count 0 2 1 1 2 6 ... ...

¿Cómo puedo calcular la consulta que me da el resultado final como:

userId 0 2 ...

Cada usuario es el que visita más de una página web DISTINCT


Prueba esto:

SELECT userId, COUNT(DISTINCT webpageId) AS count FROM visits GROUP BY userId having COUNT(DISTINCT webpageId) > 1

Más: HAVING


Si bien HAVING es un buen enfoque en este caso, recuerde que las consultas se pueden anidar:

SELECT userId, pageCount FROM ( SELECT userId, COUNT(DISTINCT webpageId) AS pageCount FROM visits GROUP BY userId) AS n WHERE pageCount > 1

Los planes de consulta reales pueden diferir, especialmente si HAVING es un caso optimizado, pero no hay razón para que los planes deban ser diferentes. (Compare los planes en la versión / RDBMS específica si es un problema o inquietud).


sólo tiene que añadir la cláusula de tener

SELECT userId, COUNT(DISTINCT webpageId) AS count FROM visits GROUP BY userId HAVING COUNT(DISTINCT webpageId) > 1

pero si solo lo que el ID

SELECT userId FROM visits GROUP BY userId HAVING COUNT(DISTINCT webpageId) > 1

La razón por la que está filtrando en la cláusula HAVING y no en WHERE es porque, la cláusula WHERE no puede admitir columnas que se agregaron .