Doctrine orm 查询语言中的一些排序规则

Doctrine orm 查询语言中的一些排序规则,doctrine-orm,doctrine,Doctrine Orm,Doctrine,我的问题如下: SELECT t.id, t.name, count(i.id) FROM Acme\TestBundle\Entity\Tags t LEFT JOIN t.items i WITH i.status=1 AND (SELECT count(img.id) FROM Acme\TestBundle\Entity\ItemsImages img WHERE img.item=i.id) > 0 GROUP BY t.id ORDER BY COUNT (i.id) DESC

我的问题如下:

SELECT t.id, t.name, count(i.id) FROM Acme\TestBundle\Entity\Tags t
LEFT JOIN t.items i WITH i.status=1 AND (SELECT count(img.id) FROM Acme\TestBundle\Entity\ItemsImages img WHERE img.item=i.id) > 0
GROUP BY t.id
ORDER BY COUNT (i.id) DESC
如果没有ORDERBY子句,此查询可以正常工作。每当我添加此条款时,它都会给我错误:

[Syntax Error] line 0, col 297: Error: Expected end of string, got '(' 

ORDER BY可用于列名,但count(i.id)等列不起作用

要按聚合值排序,您需要先选择它,然后使用它来排序:

SELECT
    t.id,
    t.name,
    count(i.id) AS tags_count
FROM 
    Acme\TestBundle\Entity\Tags t
...
ORDER BY
    tags_count DESC