Sql語句中group by 子句的規則

2021-09-06 00:08:23 字數 552 閱讀 1158

group by 是分組查詢, 一般 group by 是和聚合函式配合使用

group by 有乙個原則,就是 select 後面的所有列中,沒有使用聚合函式的列,必須都出現在 group by 後面(重要)

例如,有如下資料庫表:

a    b

1    abc

1    bcd

1    asdfg

如果有如下查詢語句(該語句是錯誤的,原因就是group by語句後沒有出現select的列b)

select a,b from table group by a 

該查詢語句的意圖是想得到如下結果(當然只是一相情願)

a     b

abc

1     bcd

asdfg 

右邊3條如何變成一條,所以需要用到聚合函式,如下(下面是正確的寫法):

select a,count(b) as count from table group by a

這樣的結果就是

a    count

1    3 

SQL語句中的Group By

先來看下表1,表名為測試 表1執行如下sql語句 selectnamefromtest groupbyname 你應該很容易知道執行的結果,沒錯,就是下表2 表2 可是為了能夠更好的理解 group by 多個列 和 聚合函式 的應用,我建議在思考的過程中,由表1到表2的過程中,增加乙個虛構的中間表...

SQL語句like子句中的轉義符

如果想在sql like裡查詢有下劃線 或是 等值的記錄,直接寫成like xx 則會把 當成是like的萬用字元。sql裡提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和c裡的 很像,但是escape要求自定義乙個轉...

SQL語句like子句中的轉義符

如果想在sql like裡查詢有下劃線 或是 等值的記錄,直接寫成like xx 則會把 當成是like的萬用字元。sql裡提供了 escape子句來處理這種情況,escape可以指定like中使用的轉義符是什麼,而在轉義符後的字元將被當成原始字元,這和c裡的 很像,但是escape要求自定義乙個轉...