SQL分组依据和排序依据

我有一张标签表,想从列表中获得计数最高的标签。

样本数据如下所示

id (1) tag ('night')

id (2) tag ('awesome')

id (3) tag ('night')

使用

SELECT COUNT(*), `Tag` from `images-tags`

GROUP BY `Tag`

让我得到正在寻找的完美数据。但是,我想对它进行组织,以使最高的标签数排在首位,并限制它仅向我发送前20个左右。

我试过了

SELECT COUNT(id), `Tag` from `images-tags`

GROUP BY `Tag`

ORDER BY COUNT(id) DESC

LIMIT 20

而且我不断收到“组功能的无效使用-ErrNr 1111”

我究竟做错了什么?

我正在使用MySQL 4.1.25-Debian

回答:

在所有版本的MySQL中,只需在SELECT列表中为聚合设置别名,并按别名排序:

SELECT COUNT(id) AS theCount, `Tag` from `images-tags`

GROUP BY `Tag`

ORDER BY theCount DESC

LIMIT 20

以上是 SQL分组依据和排序依据 的全部内容, 来源链接: utcz.com/qa/406205.html

回到顶部