SQL 分组使用案例
生活随笔
收集整理的這篇文章主要介紹了
SQL 分组使用案例
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
SQL的分組函數(shù)如何使用
問題描述
mysql如何查詢某個(gè)字段平均數(shù)以下的數(shù)據(jù)?
先用where條件查詢,顯示出錯(cuò),原因是where后不能用avg()
select unix,num from waterdata where num<avg(num);然后用group by having來查詢,雖然沒報(bào)錯(cuò),但根本沒有數(shù)據(jù)出來。
select unix,num from waterdata group by num having num<avg(num);此外,where后面不能用avg(),max()等函數(shù),為什么可以用current_timestamp()這種函數(shù)呢?
解決方法?
-- 1 查詢emp里工資小于平均值的員工信息(整個(gè)結(jié)果集分組) SELECT * FROM emp -- 平均工資為 2073.214286 WHERE SAL <(SELECT AVG(SAL) FROM emp) -- 2 查詢emp里工資小于部門平均值的員工信息(按照部門分組) SELECT A.*,AVG_SAL FROM emp A JOIN ( SELECT deptno,AVG(SAL) AVG_SAL FROM emp GROUP BY deptno )B ON A.deptno = B.deptno AND A.SAL < B.AVG_SAL ORDER BY deptno -- 3 問題分析 -- 3.1 分組字段和聚合字段不能用一個(gè),不然達(dá)不到分組的目的。 -- 3.2 比如,下例的分組和聚合都是一個(gè)字段,效果等同于SAL <= SAL(即沒分組) SELECT * FROM emp GROUP BY SAL HAVING SAL <= AVG(SAL) -- 3.3 current_timestamp是系統(tǒng)函數(shù)且不是聚合函數(shù),所以可以接WHERE。總結(jié)
以上是生活随笔為你收集整理的SQL 分组使用案例的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年华利率是什么意思
- 下一篇: FoodMart数据仓库mysql表及数