`
wattone
  • 浏览: 40533 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

多关键字的分组排序

阅读更多
首先说下order by
order by asc是升序
一般默认是升序
降序的话是order by desc

如果我们想按照指定的字段顺序来排列怎么做呢
有一个表t
以下是select * from t
id   Name   Country
1     A      TW
2     B      JP
3     C      US
4     D      JP
5     E      US
6     F      TW
7     G      JP

如果select * from t order by Country
id   Name   Country
2     B      JP
4     D      JP
7     G      JP
1     A      TW
6     F      TW
5     E      US
3     C      US

如果我想以 TW->US->JP顺序来的话
SELECT * FROM t   
ORDER BY (CASE Country   
    WHEN 'TW' THEN 1   
    WHEN 'US' THEN 2   
    WHEN 'JP' THEN 3   
    END)


结果就是
1     A      TW
6     F      TW
5     E      US
3     C      US
4     D      JP
2     B      JP
7     G      JP

接下来如果在分组中如何排序呢
select area_code,substr(order_time,0,8),count(*) from wangbh_temp
group by area_code,substr(order_time,0,8)
order by substr(order_time,0,8),(
case area_code when  'QZ' then 1
when  'HZ' then 2
when  'HU' then 3
when  'JX' then 4
when  'NB' then 5
when  'SX' then 6
when  'TZ' then 7
when  'WZ' then 8
when  'LS' then 9
when  'JH' then 10
when  'ZS' then 11
end)

AREA_CODE SUBSTR(ORDER_TIME,0,8) COUNT(*)
QZ       20100901              3
HZ       20100901              5
HU       20100901              4
JX       20100901              1
NB       20100901              11
SX       20100901              1
TZ       20100901              6
WZ       20100901              4
LS       20100901              1
JH       20100901              8
HZ       20100902              3
JX       20100902              2
NB       20100902              5
TZ       20100902              1
WZ       20100902              7
LS       20100902              1
JH       20100902              2

以上查询中先以AREA_CODE SUBSTR(ORDER_TIME,0,8)进行分组,
然后以SUBSTR(ORDER_TIME,0,8)默认升序排序,
再以   'QZ'->'HZ'->'HU'-> 'JX'->'NB'->'SX'->'TZ'->'WZ'->'LS'->'JH'->'ZS' 的顺序排序
分享到:
评论

相关推荐

    数据结构实验报告--多关键字排序.doc

    《数据结构实验报告--多关键字排序》 在本次数据结构实验报告中,主要涉及了多种排序算法,包括直接插入排序、希尔排序、简单选择排序、冒泡排序、快速排序、堆排序以及归并排序。这些排序算法的核心在于通过特定...

    wing324#helloworld_zh#Hive之各个分组排序关键字的区别1

    二、Distribute by 五、Cluster by 六、如何使用sort by实现全局排序

    SQL常用的关键字

    ORDER BY关键字用于对查询结果进行排序。基本语法为:SELECT * FROM 表名 ORDER BY 字段名 ASC/DESC。例如,按照班号降序查询所有学生记录:SELECT * FROM student ORDER BY class DESC。 12. 汇总语句关键字:...

    sql关键字字典大全

    虽然J系列关键字在提供的内容中未提及,但可以推测**JOIN**关键字的存在,用于连接多个表的数据,是SQL中最复杂的操作之一。 #### K系列关键字 - **KEY**:虽然未具体列出,但通常与索引和外键约束相关联,用于...

    EXCEL数据的排序教案参考.pdf

    - 排序练习:学生分组完成多个排序任务,增强实际操作技能,培养协作精神。 - 深入难点:引入自定义排序,教师演示如何创建自定义序列并应用于排序。 - 复习总结:教师回顾本节课的重点内容,引导学生梳理所学...

    快速实现关键词分组

    在这个特定的场景中,"关键词分组工具表"可能包含了多个列,如“关键词”、“类别”等,用户只需将待分组的关键词输入到指定列,然后通过公式或VBA宏等方法进行自动分组。这样的工具可以极大地提高工作效率,避免...

    MYSQL关键字

    - **ORDER BY**:排序。 - **GROUP BY**:分组。 - **HAVING**:过滤分组结果。 - **LIMIT**:限制返回的行数。 - **OFFSET**:偏移量。 - **JOIN**:连接多个表。 - **LEFT JOIN**/ **RIGHT JOIN**/ **INNER JOIN**...

    数据库sqlserver关键字

    * Join:连接两个或多个表 * Left/Right:指定连接的方式 * Between:指定查询的范围 * Like:模式匹配 * Not like:不匹配模式 * Asc/Desc:排序方式 集合函数 * Count(*):统计元组个数 * Count(列名):统计一列...

    oracle数据库关键字

    * BY:分组语句,用于分组数据。 * CASE:case语句,用于根据条件执行不同的代码。 * CHECK:检查语句,用于检查条件。 * CLOSE:关闭语句,用于关闭游标或文件。 这些关键字是Oracle数据库的核心组成部分,理解和...

    基数排序实用PPT课件PPT课件.pptx

    基数排序是一种内部排序算法,利用了多关键字排序的思路来对单个关键字进行排序。它主要处理包含多个数位或字符的关键字,如数字或字符串。在多关键字排序中,通常有最低位优先(LSD)法和最高位优先(MSD)法两种...

    mysql关键字

    17. `GROUP BY`:用于对结果集进行分组。 18. `HAVING`:在聚合函数后进行筛选。 19. `ORDER BY`:对查询结果进行排序。 20. `LIMIT`:限制返回的行数。 21. `INSERT`:用于向表中插入新记录。 22. `UPDATE`:用于...

    基数排序PPT学习教案.pptx

    相反,LSD法则先按最低位关键字进行排序,对每个关键字都进行分组和收集,操作相对简单。基数排序通常指的是使用LSD方法进行排序。 基数排序的过程包括“分配”和“收集”两个阶段。在分配阶段,根据每个数字的当前...

    易语言源码分组插入排序.rar

    1. **分组**:首先,我们需要根据数据的特性或预设规则将待排序数组划分为多个子序列,每个子序列包含一定数量的元素。 2. **内部排序**:然后,对每个子序列进行插入排序。插入排序的基本操作是将一个记录插入到...

    Android中ListView字母排序,实现字母挤压效果以及右侧快速选中字母,搜索关键字功能

    本篇文章将深入探讨如何在ListView中实现字母排序、字母挤压效果、右侧快速选中字母的功能,以及添加搜索关键字的功能。 首先,我们来讨论如何实现字母排序。在Android中,我们可以利用Java的Collections.sort()...

    易语言源码分组插入排序.7z

    分组插入排序(Grouped Insertion Sort)是基于插入排序的一种优化策略,主要适用于大规模数据集,尤其当数据集可以被划分为多个小规模子集时。传统的插入排序在处理大数据量时效率较低,因为它将每个元素与已排序的...

    内部排序算法的性能分析

    4. **希尔排序**:希尔排序是插入排序的一种改进版本,通过将元素按照一定的增量分组进行排序,然后逐渐减小增量,直到增量为1,完成整个序列的排序。希尔排序的时间复杂度通常介于O(n)到O(n^2)之间,具体取决于增量...

    SQL实验:使用分组,排序和聚合函数以及连接查询

    本次实验旨在帮助学生通过实践加深对SQL语言的理解,特别是关于分组、排序、聚合函数以及连接查询等关键概念的应用。具体包括: 1. **掌握通配符的用法**:通配符在SQL中用于模糊匹配字符串,如`%`和`_`。 2. **...

    Mysql 关键字执行顺序

    10. ORDER BY:对结果集进行排序。 11. LIMIT:最后,LIMIT用于获取指定数量的记录,常用于分页查询。 关于执行顺序可能的疑问: 1. **ON 和 JOIN 的执行顺序**:ON条件先执行,因为它用于确定JOIN的基础。JOIN...

    SQL语句操作关键字全集

    - `SELECT`: 用于查询数据,如`SELECT * FROM table1 WHERE condition`,可以进行各种复杂的筛选、排序、分组等操作。 - `DELETE`: 删除数据行,如`DELETE FROM table1 WHERE condition`。 - `UPDATE`: 更新数据...

    计算机应用基础(Windows7+office2010)5.5-1ppt-图文.pptx

    3. **多关键字筛选**:在复杂的筛选场景中,可能需要基于多个字段设置条件,这时可以结合使用主要和次要关键字进行筛选。 4. **高级筛选**:当需要更复杂或精确的筛选条件时,可以使用高级筛选。它可以实现多条件...

Global site tag (gtag.js) - Google Analytics