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分組查詢
- 力扣之二分查詢力扣
- 查詢與排序02,折半查詢排序
- MySQL之集合函式與分組查詢MySql函式
- [Mysql 查詢語句]——分組查詢group byMySql
- 第二章 :查詢與排序-------二分查詢的遞迴解法排序遞迴
- 查詢與排序05,氣泡排序排序
- 查詢與排序04,插入排序排序
- 查詢與排序03,選擇排序排序
- 第二章 :查詢與排序---------遞迴、查詢與排序補充排序遞迴
- HBase學習之二: hbase分頁查詢
- sql分組查詢語句--行內分組(非聚合分組)SQL
- sql server分組查詢示例SQLServer
- 分頁查詢的排序問題排序
- Oracle總結【SQL細節、多表查詢、分組查詢、分頁】OracleSQL
- 小白懂演算法之二分查詢演算法
- 分組查詢連線號段
- Oracle和MySQL分組查詢GROUP BYOracleMySql
- 第二章 :查詢與排序-------希爾排序排序
- 分頁查詢的排序問題(二)排序
- select查詢之三:子查詢
- select查詢之一:普通查詢
- select子查詢
- oracle心得3--多表查詢@分組查詢@子查詢講解與案例分析@經典練習題Oracle
- 查詢演算法之二分法演算法
- 死磕演算法之二分查詢法演算法
- select查詢之六:別名與拼接
- 資料庫分類統計、分組查詢資料庫
- SQL Server對組合查詢結果排序方法SQLServer排序
- select查詢之四:連線查詢
- 關於 groupBy 分組查詢的分頁處理
- 排序和查詢排序
- Oracle分頁查詢中排序與效率問題解決方法詳解Oracle排序
- mysql加強(3)~分組(統計)查詢MySql
- order by改分組排序排序
- SQL 分組排序group bySQL排序