MySql 分組數據

創建分組

分組是在select語句的group by字句中建立的。

舉例:select vend_id, count(*) as num_prods from products group by vend_id;

結果:

\1.PNG
\1.PNG

在具體使用group by字句前,需要知道一些重要的規定。

  • group by字句可以包含任意數目的列。這使得能對分組進行嵌套,為數據分組提供更精細化的控制。
  • 如果在group by字句中嵌套了分組,數據將在最后規定的分組上進行匯總。
  • group by字句中列出的每個列都必須是檢索列或有效的表達式(但不能是聚集函數)。如果在select中使用表達式,則必須在group by字句中指定相同的表達式。不能使用別名。
  • 如果分組列中具有null值,則null將作為一個分組返回。
  • group by字句必須出現在where字句之后,order by字句之前。

過濾分組

過濾分組使用having

having和where的差別:where在數據分組前進行過濾,having在數據分組后進行過濾。

舉例:select vend_id, count(*) as num_prods from products where prod_price >= 10 group by vend_id having count(*) >=2

說明:列出具有2個(含)以上、價格為10(含)以上產品的供應商

\2.PNG
\2.PNG

select 字句順序

一下為select 語句中使用必須遵循的次序:

字句          說明                是否必須使用
select          要返回的列或表達式     是
from           從中檢索數據的表      僅在從表選擇數據時使用
where          行級過濾            否
group by        分組說明            僅在按組計算聚集是使用
having         組級過濾            否
order by        輸出排序順序         否
limit          要檢索的行數         否


參考書籍:

  • MySQL必知必會
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 1.MySQL數據庫 2.SQL語句 第一節課 ###1(MySQL數據庫)數據庫概念.avi 5...
    碼了個農啵閱讀 1,242評論 1 16
  • 1.簡介 數據存儲有哪些方式?電子表格,紙質文件,數據庫。 那么究竟什么是關系型數據庫? 目前對數據庫的分類主要是...
    喬震閱讀 1,787評論 0 2
  • 50個常用的sql語句Student(S#,Sname,Sage,Ssex) 學生表Course(C#,Cname...
    哈哈海閱讀 1,256評論 0 7
  • [iOS 單元測試之XCTest詳解](http://blog.csdn.net/hello_hwc/articl...
    三歲就很乖閱讀 223評論 0 0
  • I exist because you need me! 如果我真的存在,也是因為你需要我! 如果命運是一條孤獨的...
    九尾妖閱讀 546評論 2 3