Les règles de scoping de SQL ne vous permettent pas d'utiliser un alias dans le même fichier. select
. Bien que cela semble déraisonnable, il s'agit d'éviter des confusions telles que :
select 2*x as x, x+1
Quel x
la deuxième variable se réfère-t-elle à ?
Vous pouvez résoudre ce problème en utilisant une sous-requête :
select t.*, Sum(rank) AS total
from (SELECT a.question_id, a.level, Count(a.question_id) AS rank,
FROM logs AS a join
question AS b
on a.question_id = b.q_id
WHERE a.level = '2'
GROUP BY a.question_id
) t
ORDER BY rank DESC
J'ai également corrigé la syntaxe de votre jointure. L'utilisation d'une virgule pour signifier une cross join
avec des restrictions dans le where
clause est plutôt dépassée.