mysql-查詢2

分組查詢 group by

group by 屬性名 [having 條件表達式][ with rollup]

“屬性名 ”指按照該字段值進行分組;“having 條件表達式 ”用來限制分組后的顯示,滿足條件的結果將被顯示;with rollup 將會在所有記錄的最后加上一條記錄,該記錄是上面所有記錄的總和。

1)單獨使用

group by 單獨使用,查詢結果只顯示一個分組的一條記錄。
實例:
select * from employee group by sex;
將只顯示男女兩條記錄。

2)與group_concat()函數一起使用

每個分組中指定字段值都顯示出來
實例:
select sex,group_concat(name) from employee group by sex;
顯示結果中“女”會顯示所有sex為“女”的名字name

sex | group_concat(name)
女 | 小紅,小蘭
男 | 張三,王五,王六

3)與集合函數一起使用

實例:
select sex,count(sex) from employee group by sex;
結果:

sex | count(num)
女 | 1
男 | 3

count()為計算個數的方法。

4)與having一起使用

“having條件表達式”,可以限制輸出結果。只有滿足條件表達式的結果才顯示。
實例:
select sex,count(sex) from employee group by sex having count(sex) >= 3;
結果:

sex | count(sex)
男 | 3

“having條件表達式”作用于分組后的記錄。

5)按多字段進行分組

select * from employee group by d_id,sex;
查詢結果先按d_id分組,再按sex進行分組

6) 與with rollup一起使用

使用with rollup將會在所有記錄的最后加上一條記錄,這條記錄是上面所有記錄的總和
實例:
select sex,count(sex) from employee group by sex with rollup;
結果:

sex | count(sex)
女 | 1
男 | 5
null | 6

如果是字符串的話,比如姓名就會生成“張三,李四,王五”這種類型的結果,即name總和。

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

推薦閱讀更多精彩內容

  • 查詢基礎 算術運算符 (+)(-)(*)(/) 值得注意的是:/ 在oracle中就相當于顯示中的除法 5/2 =...
    Autism_37a1閱讀 489評論 0 0
  • 目錄 簡介 在Android中存儲數據有時會用到數據庫,Android給我們提供了 一系列的API來操作數據庫,非...
    慕涵盛華閱讀 1,045評論 1 2
  • 查詢是數據的一個重要操作。用戶發送查詢請求,經編譯軟件變異成二進制文件供服務器查詢,后返回查詢結果集給用戶,查詢會...
    產品小正閱讀 1,437評論 0 2
  • mysql數據庫中 :database : 文件夾table : 數據表(數據文件) 進入mysqlmysql -...
    賦閑閱讀 580評論 0 0
  • 親愛的媽媽們,大家好。我整理了團隊五月份各項活動的獎勵情況。大家都知道,六月份大V店會啟動城市合伙人項目,也就是說...
    蜜芯兒閱讀 274評論 0 0