SQL 分组使用案例
生活随笔
收集整理的這篇文章主要介紹了
SQL 分组使用案例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
SQL的分組函數如何使用
問題描述
mysql如何查詢某個字段平均數以下的數據?
先用where條件查詢,顯示出錯,原因是where后不能用avg()
select unix,num from waterdata where num<avg(num);然后用group by having來查詢,雖然沒報錯,但根本沒有數據出來。
select unix,num from waterdata group by num having num<avg(num);此外,where后面不能用avg(),max()等函數,為什么可以用current_timestamp()這種函數呢?
解決方法?
-- 1 查詢emp里工資小于平均值的員工信息(整個結果集分組) 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 分組字段和聚合字段不能用一個,不然達不到分組的目的。 -- 3.2 比如,下例的分組和聚合都是一個字段,效果等同于SAL <= SAL(即沒分組) SELECT * FROM emp GROUP BY SAL HAVING SAL <= AVG(SAL) -- 3.3 current_timestamp是系統函數且不是聚合函數,所以可以接WHERE。總結
以上是生活随笔為你收集整理的SQL 分组使用案例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 年华利率是什么意思
- 下一篇: 出现信用卡逾期不还后果很严重 千万不要抱