Vous avez la bonne syntaxe :
WITH AuthorRating(AuthorName, AuthorRating) AS
SELECT aname AS AuthorName,
AVG(quantity) AS AuthorRating
FROM Book
GROUP By Book.aname
Cependant, comme d'autres l'ont mentionné, MySQL ne prend pas en charge cette commande. WITH a été ajouté dans SQL:1999 ; la version la plus récente de la norme SQL est SQL:2008. Vous pouvez trouver de plus amples informations sur les bases de données qui prennent en charge les diverses fonctionnalités de SQL:1999 sur le site suivant Wikipedia .
MySQL est traditionnellement un peu à la traîne en ce qui concerne la prise en charge du standard SQL, alors que les bases de données commerciales comme Oracle, SQL Server (récemment) et DB2 l'ont suivi d'un peu plus près. PostgreSQL est généralement assez conforme aux normes également.
Vous pouvez consulter la feuille de route de MySQL ; je ne suis pas tout à fait sûr de la date à laquelle cette fonctionnalité sera prise en charge, mais elle est idéale pour créer des requêtes roll-up lisibles.