select查詢之二:分組與排序
在這裡簡單講一下分組字句group by 與排序order by 字句的簡單應用,其中,
order by 字句永遠放在查詢語句的最後面。
Select語句的總結構:
Select [欄位] [限制條件]
from [資料表] /子查詢[巢狀查詢]
where [篩選條件] /子查詢[巢狀查詢]
group by[分組欄位] /子查詢[巢狀查詢]
Having [輔助篩選條件] /子查詢[巢狀查詢]
order by[排序欄位];
Group by一般情況下與一些聚合函式(統計函式)max、min、count與avg等搭配使用,
有時也搭配having字句使用,having字句一般放在Group by後面。having指明分組結果
的條件,不能單獨使用,一般與Group by一起使用。Group by可以單獨使用having單獨是相對where功能。
1、Group by字句語having字句並用:
在HR使用者,查詢employees表,要求:大於5人的job_id的最大薪金,最小薪金,人數。
select max(salary),min(salary),count(job_id)
2 from employees
3 group by job_id
4 having count(job_id)>5;
MAX(SALARY) MIN(SALARY) COUNT(JOB_ID)
----------- ----------- -------------
4200 2500 20
11500 6100 30
3600 2100 20
2、Group by字句單獨使用:
統計emp中每個部門的工資總和及每個部門的人數
SQL> select sum(sal),count(empno)
2 from emp
3 group by deptno;
SUM(SAL) COUNT(EMPNO)
---------- ------------
9400 6
10875 5
8750 3
3、Order by字句:
Order by字句起到排序作用,可以按照升序ASC排列查詢出來的資料,
或者降序DESC排預設情況排序是升序。
檢視emp表的所有資訊:
SQL> select empno,ename,sal,deptno
2 from emp
3 order by deptno;
EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7782 CLARK 2450 10
7839 KING 5000 10
7934 MILLER 1300 10
7566 JONES 2975 20
7902 FORD 3000 20
7876 ADAMS 1100 20
7369 SMITH 800 20
7788 SCOTT 3000 20
7521 WARD 1250 30
7844 TURNER 1500 30
7499 ALLEN 1600 30
EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7900 JAMES 950 30
7698 BLAKE 2850 30
7654 MARTIN 1250 30
14 rows selected.
4、可以多個欄位排序:
SQL> select grade,cno
2 from sc
3 order by cno desc,grade desc;
GRADE CNO
---------- ----------
99 3
93 3
93 3
85 3
92 2
92 2
88 2
75 2
91 1
88 1
80 1
65 1
12 rows selected.
5、 Order by字句中使用欄位代號:
檢視部門號為30的員工資訊,並按照工資從高到低排序:
SQL> select empno,ename,sal,deptno
2 from emp
3 where deptno =30
4 order by 3 desc;
EMPNO ENAME SAL DEPTNO
---------- ---------- ---------- ----------
7698 BLAKE 2850 30
7499 ALLEN 1600 30
7844 TURNER 1500 30
7521 WARD 1250 30
7654 MARTIN 1250 30
7900 JAMES 950 30
6 rows selected.
從以上的一些操作,可以看到,order by有時候也起到分組的作用,
只是他的分組功能沒有聚合作用,就是不能跟聚合函式(統計函式)
搭配使用。排序時,排序的欄位可以用代號代替使用,如以上的order by 3 desc.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31392094/viewspace-2125908/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 查詢演算法之二分查詢演算法
- 力扣之二分查詢力扣
- 分組查詢
- mysql-分組查詢-子查詢-連線查詢-組合查詢MySql
- group by分組查詢
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- HBase學習之二: hbase分頁查詢
- 小白懂演算法之二分查詢演算法
- 死磕演算法之二分查詢法演算法
- 查詢演算法之二分法演算法
- Oracle總結【SQL細節、多表查詢、分組查詢、分頁】OracleSQL
- 第二章 :查詢與排序-------希爾排序排序
- sql查詢更新update selectSQL
- 【分模組練習】二分查詢
- 排序和查詢排序
- 每週一演算法之二分查詢(Kotlin描述)演算法Kotlin
- SQLServer DML操作阻塞SELECT查詢SQLServer
- 第三章:查詢與排序(下)----------- 3.20桶排序排序
- 第三章 :查詢與排序-------3.7分治模式的完美詮釋_歸併排序排序模式
- 關於 groupBy 分組查詢的分頁處理
- MySQL全面瓦解9:查詢的排序、分頁相關MySql排序
- 第三章:查詢與排序(下)----------- 3.19 計數排序排序
- 第三章:查詢與排序(下)----------- 3.21基數排序排序
- 在WEPAPI介面無法查詢物料分組API
- mysql加強(3)~分組(統計)查詢MySql
- 查詢——二分查詢
- Oracle分組查詢中包含子查詢列,發生ORA-00937:不是單分組函式的錯誤Oracle函式
- 5分鐘瞭解二叉樹之二叉查詢樹二叉樹
- mysql三表連線查詢以及百分數排序MySql排序
- MySQL講義第27講——select 查詢之自連線查詢MySql
- MySQL講義第 47 講——select 查詢之查詢練習(五)MySql
- 資料庫排序查詢資料庫排序
- Mysql按時間分組查詢(每天|每月|每年)MySql
- 查詢統計SQL分組求和使用小技巧SQL
- Mysql中常用函式 分組,連線查詢MySql函式
- 一條select的查詢的過程
- order by改分組排序排序
- 第二章 :查詢與排序-------遞迴形式進行插入排序排序遞迴