1. 程式人生 > >資料庫group by 兩個或以上條件的分析

資料庫group by 兩個或以上條件的分析

今天在測試的時候看到了這個東西,平時的時候我們都是使用一個就好了,就是分組顯示。突然間的分類了很多種,讓我暈了,但是性質還是一樣的,就當事一個複習吧!經驗的積累。我就是找了別人寫的例子,非常的清楚,所以就拿過過來啦!、

  • 首先group by 的簡單說明:

group by 一般和聚合函式一起使用才有意義,比如 count sum avg等,使用group by的兩個要素:

  1. 出現在select後面的欄位 要麼是是聚合函式中的,要麼就是group by 中的.
  2. 要篩選結果 可以先使用where 再用group by 或者先用group by 再用having

example:

create
table test ( a varchar(20), b varchar(20), c varchar(20) ) insert into test values(1,'a','甲') insert into test values(1,'a','甲') insert into test values(1,'a','甲') insert into test values(1,'a','甲') insert into test values(1,'a','乙') insert into test values(1,'b','乙') insert into test values(1,'b','乙'
) insert into test values(1,'b','乙')
  • select * from test

這裡寫圖片描述

結果中 按照b列來分:則是 5個a 3個b.
按照c列來分:則是 4個甲 4個乙.

  • 第二次 按照 b列來分組 程式碼如下

select count(a),b from test group by b
這裡寫圖片描述

  • 第三次 按照 c列來分組 程式碼如下

select count(a),c from test group by c
這裡寫圖片描述

  • 第四次 按照 b c兩個條件來分組
    這個時候其實就是我們的bc兩個不同的組合,很多類吧!
    select count(a),b,c from test group by b,c
    這裡寫圖片描述

  • 第五次 按照 c b 順序分組
    select count(a),b,c from test group by c,b
    這裡寫圖片描述

其實我們可以看出來啦,這些分組有點向我們的組合數,但是又有區別的。反正就是非常的像吧,看你怎麼像這個問題啦,哈哈!get技能

實習還是可以的!