sql
排序
提示
Hive SQL 教程 编写中,使用过程中有任何建议,提供意见、建议、纠错、催更加微信 gairuo123。欢迎关注本教程作者新书《深入浅出Pandas:利用Python进行数据处理与分析》 。作者开办 Python 数据分析培训,详情 Python 数据分析培训。
在真实的大数据场景下,数据量往往非常庞大,我们要找到自己想要的特定内容就需要对结果进行排序。SQL提供了 ORDER BY 子句按给定列按升序或降序对结果进行排序的方法。本文介绍标准 SQL 的排序语句 ORDER BY。
本文例子中使用的数据是筛选指定字段中的数据内容。
Order by 是非常通用的,所有的 SQL 都支持。基本语法为:
SELECT column, another_column
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
说明:
升降序:
在用 ORDER BY 按一定的字段排序时,如果你不想写字段名,可以用 Select 中的序号来代码这些字段,如:
SELECT item_id, uesr_id
^^^^ ^^^^
1 2
FROM tab
ORDER BY 1;
在上面的查询中 ORDER BY 1 指的是 select 语句中的第一列,那就是 item_id。这个用法,还可以用在 GROUP BY 子句中。
注意:ORDER BY 和GROUP BY 中的数字始终以 1 开头,而不是以 0 开头。
基本使用:
-- 按出生早到晚排序
select name, b_year
from students
where class = 2
order by b_year
-- 数学成绩从高到低
select name, math
from students
where class = 2
order by math desc
多重排序:
-- 先按班级序号排序,同一班级成绩从高到低
select name, class, math
from students
where math > 60
order by class, math desc
-- 先出生晚的在前,同一年生的成绩高的在前
select name, b_year, math
from students
where math > 60
order by b_year desc, math desc