在 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
我有一些数据,其中包括国际象棋开局动作的名称。我想找出白人玩家最常见的开局动作。
我已经能够将白方玩家信息(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