Error de MySQL: # 1247 - No se admite la referencia 'karma' (referencia a la función de grupo)
Aquí está mi consulta mysql a continuación. A través de muchas preguntas y comentarios útiles, estoy casi al final de mi viaje. La idea detrás de esta consulta es que un usuario envíe un enlace, la aplicación inserta dos filas, una en los enlaces y otra en los votos (una votación predeterminada, ¿por qué un usuario no vota por su propio envío?) Cada voto es solo otra fila en la tabla de votos con un ya sea unkarma_up
okarma_down
igualando 1 (que pronto será cambiado akarma_delta
para guardar en la columna extra. También tengo el algoritmo de popularidad allí que parece estar haciendo mi consulta. Ejecutar la siguiente consulta me garantiza este error.
#1247 - Reference 'karma' not supported (reference to group function)
El punto central de la mayoría de esta consulta es obtener el karma.
SELECT links.*, (SUM(votes.karma_up) - SUM(votes.karma_down)) AS karma
FROM links, votes
WHERE links.id = votes.link_id
GROUP BY votes.link_id
ORDER BY (karma - 1) / POW((TIMESTAMPDIFF(HOUR, links.created, NOW()) + 2), 1.5) DESC
LIMIT 0, 100
Sin el algoritmo de popularidad en elORDER BY
parte la consulta se ejecuta perfectamente, agregando el karma resumido delvotes
Tabla y tachuela en una columna extra con su valor.