• pg14-sql基础(二)-排序与统计


    排序

    SELECT employee_id, first_name, last_name, hire_date, salary
    FROM employees
    ORDER BY first_name; --按字母,默认升序
    ORDER BY hire_date ASC; --升序
    ORDER BY hire_date DESC; --降序
    
    • 1
    • 2
    • 3
    • 4
    • 5
    SELECT employee_id, first_name, last_name, hire_date, salary
    FROM employees
    ORDER BY first_name, last_name DESC --姓按照升序排,名按照降序排
    
    • 1
    • 2
    • 3

    在这里插入图片描述

    在这里插入图片描述

    SELECT employee_id, first_name, last_name, hire_date, salary
    FROM employees
    ORDER BY 2, 3 DESC --也可输入要查询字段的顺序号码
    
    • 1
    • 2
    • 3
    SELECT employee_id, manager_id
    FROM employees
    ORDER BY manager_id DESC; --排序时null是最大的值
    
    SELECT employee_id, manager_id
    FROM employees
    ORDER BY manager_id NULLS FIRST; --指定排序时null是第一
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    返回top

    -- 前十名
    SELECT first_name, last_name, salary
    FROM employees
    ORDER BY salary
    -- FETCH FIRST 10 ROWS ONLY;
    LIMIT 10; --无相同值
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

    SELECT first_name, last_name, salary
    FROM employees
    ORDER BY salary
    FETCH FIRST 10 ROWS WITH TIES;
    -- 返回数据包含相同值
    
    • 1
    • 2
    • 3
    • 4
    • 5

    在这里插入图片描述

    SELECT first_name, last_name, salary
    FROM employees
    ORDER BY salary
    OFFSET 10 ROWS --实现翻页,第一次1-10,第二次11-20,第三次,21-30
    -- OFFSET 20 ROWS
    -- OFFSET 30 ROWS
    FETCH FIRST 10 ROWS ONLY;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    SELECT first_name, last_name, salary
    FROM employees
    ORDER BY salary
    LIMIT 10 OFFSET 10; --同实现翻页
    -- LIMIT 10 OFFSET 20;
    -- LIMIT 10 OFFSET 20;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    条件表达case

    SELECT first_name, last_name,
      CASE
         WHEN salary <5000 THEN '低收入'
    	  WHEN salary between 5000 and 100000 THEN '中等收入'
    	  ELSE '高收入'
      END AS "收入等级"
    FROM employees;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    在这里插入图片描述

    --查询部门编号为10、20、30有各多少人
    SELECT COUNT(CASE department_id WHEN 10 THEN 1 END) dep_cnt_10,
    -- 换种写法:COUNT(*) FILTER (WHERE department_id=10) dep_cnt_10,
           COUNT(CASE department_id WHEN 20 THEN 1 END) dep_cnt_20,
    	   COUNT(CASE department_id WHEN 30 THEN 1 END) dep_cnt_30
    FROM employees;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    在这里插入图片描述

  • 相关阅读:
    tinymce公式提交问题
    vue3在router跳转路由时,params失效问题
    python计算程序开始、结束以及运行的时间
    springboot配置加密的正确姿势
    HCIP(15)
    贪心算法☞磁带最优存储问题
    gem5 & GPGPU-Sim 安装踩坑笔记
    网络学习总结
    【javaWeb学习笔记】HTML,CSS,JS
    如何利用 promise 影响代码的执行顺序?
  • 原文地址:https://blog.csdn.net/hy19930118/article/details/134234660