sql語句
SELECT *
FROM (
SELECT `字段` , count( * ) AS total
FROM `表名`
GROUP BY `分組字段`
) AS t
WHERE total >10 and 分組字段<>""
這個就是聯合查詢之後再把分組查出來的數據當作一個條件來進行處理,好了下面我們補充一下關於sql分組查詢的例子與細節問題。
1.使用group by進行分組查詢
在使用group by關鍵字時,在select列表中可以指定的項目是有限制的,select語句中僅許以下幾項:
〉被分組的列
〉為每個分組返回一個值得表達式,例如用一個列名作為參數的聚合函數
group by的使用在這只寫幾個例子吧:
例:
select courseID,avg(score) as 課程平均成績
from score
group by courseID
例:
select studentID as 學員編號,courseID as 內部測試,avg(score) as 內部測試平均成績
from score
group by studentID,courseID
2.使用having子句進行分組篩選
where子句只能對沒有分組統計前的數據行進行篩選,對分組後的條件的篩選必須使用having子句
例:
select studentID as 學員編號,courseID as 內部測試,avg(score) as 內部測試平均成績
from score
group by studentID,courseID
having avg(score)>60
在select語句中,where、group by、having子句和統計函數的執行次序如下:
where子句從數據源中去掉不符合去搜索條件的數據;group by子句搜集數據行到各個組中,統計函數為各個組計算統計值;having子句去掉不符合其組搜索條件的各組數據行 。