Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

538
Vistas
SUMA de valores distintos con MISMOS valores en 2 campos diferentes y SUMA de todos los valores con valores diferentes en los 2 campos diferentes

Tengo dificultades para escribir una consulta que devuelva la SUMA de valores en un campo. Necesito SUMARlo solo una vez si hay varias filas con el mismo valor en otros 2 campos y SUMAR todos los valores si hay

Tengo una tabla con 3 campos:

  1. Fuente UTM
  2. ID de la compañía
  3. Usuarios activos

Si el UTM Source y el Company ID son MISMOS, necesito contar valores distintos de Active users Si el UTM Source y el Company ID son DIFERENTES, necesito contar todos los valores de Active users

Aquí está la tabla de muestra: https://docs.google.com/spreadsheets/d/1jytu0_YduNlFXAgs_kVZ8M3UbPKnKVQWgXRE6r10p6I/edit?usp=sharing

Me las arreglé para escribir esta consulta:

 SELECT DISTINCT `UTM Source`, `Company ID`, SUM(DISTINCT `Active users`) as Users FROM customers GROUP BY `UTM Source`, `Company ID`) AS customers_2`

Obtengo casi lo que necesito, ya que devuelve solo una fila para el correo electrónico de UTM Source con valor 9 en el campo Active users . Ahora solo necesito resumir todas las mismas UTM Source , así que probé esta consulta:

 SELECT `UTM Source`, `Users` FROM ( SELECT DISTINCT `UTM Source`, `Company ID`, SUM(DISTINCT `Active users`) as Users FROM customers GROUP BY `UTM Source`, `Company ID`) AS customers_2 GROUP BY `UTM Source`

Pero estoy recibiendo algún tipo de error:

La expresión #2 de la lista SELECT no está en la cláusula GROUP BY y contiene la columna no agregada 'customers_2.Users' que no depende funcionalmente de las columnas en la cláusula GROUP BY; esto es incompatible con sql_mode=only_full_group_by

Revisé ese hilo , pero no lo entiendo bien ya que soy nuevo en las bases de datos. Estoy usando MAMP, MySQL 5.27.6 en MAC con Sequel Pro y esta es solo una base de datos de prueba que creé a partir de la tabla XLS que recibí para resolver esta tarea.

Gracias por cualquier consejo.

over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Agrupar por es para un resultado agregado, por lo que en su caso o solo necesita el resultado de la subconsulta, entonces no necesita agrupar por

 SELECT `UTM Source`, `Users` FROM ( SELECT DISTINCT `UTM Source`, `Company ID`, SUM(DISTINCT `Active users`) as Users FROM customers GROUP BY `UTM Source`, `Company ID`) customers_2

o debe agregar una función de agregación, por ejemplo:

 SELECT `UTM Source`, sum(`Users`) FROM ( SELECT DISTINCT `UTM Source`, `Company ID`, SUM(DISTINCT `Active users`) as Users FROM customers GROUP BY `UTM Source`, `Company ID`) customers_2 GROUP BY `UTM Source`

o ypu debe mencionar en el grupo y la columna no involucrada por la función de agregación

 SELECT `UTM Source`, `Users` , count(*) FROM ( SELECT DISTINCT `UTM Source`, `Company ID`, SUM(DISTINCT `Active users`) as Users FROM customers GROUP BY `UTM Source`, `Company ID`) customers_2 GROUP BY `UTM Source`, `Users`
over 4 years ago · Santiago Trujillo Denunciar

0

Sin ver qué resultados realmente desea producir a partir de esos datos, su pregunta actualmente es bastante ambigua.

Mi interpretación personal es que desea la suma de la columna de active users por UTM Source . Excepto, cuando varias filas coincidan exactamente , solo deben incluirse una vez.

A la inversa, son dos pasos...

  • Deduplicar los datos
  • Agrega los datos

Lo cual me da lo siguiente...

 SELECT `UTM Source`, SUM(`Active Users`) AS Users FROM ( SELECT DISTINCT `UTM Source`, `Company ID`, `Active Users` FROM customers ) deduplicated_data GROUP BY `UTM Source`

EDITAR:

Sin embargo, me pregunto si a la declaración del problema le falta algo de información. ¿Por qué la misma UTM Source tendría el mismo Company ID con varios números diferentes de Active Users ?

  • ¿Hay alguna otra columna(s) que no se mencione?

Por ejemplo, ¿tal vez hay un campo de fecha? ¿En cuyo caso posiblemente necesite encontrar el registro con la fecha más reciente?

Sería útil obtener más información (edite su pregunta) , sobre la razón por la que necesita hacer esto / lo que está tratando de lograr, y los resultados exactos que desea generar a partir de los datos de ejemplo dados.

(Además, no vincule a Google Docs, incluya todos los datos como texto en su pregunta, Stack Overflow tiene un formato de texto adecuado en el editor y significa que esa pregunta no se 'romperá' si luego elimina esa hoja).

over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda