在 SQL 查询中排序

Ordering in an SQL query

我有一些数据,其中包括国际象棋开局动作的名称。我想找出白人玩家最常见的开局动作。

我已经能够将白方玩家信息(player_id、player_rating 和 opening_move)分组为 table,然后使用以下:

SELECT opening_name, count(*)
FROM whiteopeningmove
GROUP BY opening_name;

这让我明白了:

我想对这些进行排序,以便最流行的开局动作在顶部,然后是下一个流行的,依此类推,但我似乎无法得到它。我看到该进程生成了列名 _c1,我尝试了 ORDER BY _C1,但没有帮助。

如有任何建议,我们将不胜感激。

order by。您可以在 order by 子句中重复聚合函数:

SELECT opening_name, count(*)
FROM whiteopeningmove
GROUP BY opening_name
ORDER BY count(*) DESC

或者更好的是,分配一个明确的别名,并在 order by 子句中重用它:

SELECT opening_name, count(*) as cnt
FROM whiteopeningmove
GROUP BY opening_name
ORDER BY cnt DESC