1. 程式人生 > >GROUP BY 與聚合函式 使用注意點

GROUP BY 與聚合函式 使用注意點

原地址:http://www.cnblogs.com/jinianjun/archive/2012/06/14/2549735.html

表的設計:

表裡面的內容:

一:在不使用聚合函式的時候,group by 子句中必須包含所有的列,否則會報錯,如下

select name,MON from [測試、] group by name

會報錯:

在子句中加上所有的列的時候

select name,MON from [測試、] group by name,mon

這時候不報錯,執行結果

此時雖然成功執行了,但是可以看出來group by在這裡並沒有發揮任何的作用,我們完全可以直接select而不用group by,所以,group by子句要配合聚合函式使用,並且,在配合聚合函式使用的時候,在group by子句中不要加上聚合函式處的列名(加入as了的話)

配合聚合函式使用了的情況:

select SUM(mon),name from [測試、] group by name

結果:

是我們想要的。

再如:

select MAX(ID),name from [測試、] group by name

結果:

也是我們想要的。

但是說如果這樣的話:

select MAX(ID) as id,name from [測試、] group by name,id

得到的結果是:

很明顯這不是我們想要的。

所以這時候在使用聚合函式的地方若是使用了as另外命名,請不要在group by子句後再加上那個令命名的名字,否則就和文章剛開始出現的情況一樣

相關推薦

GROUP BY 聚合函式 使用注意

原地址:http://www.cnblogs.com/jinianjun/archive/2012/06/14/2549735.html 表的設計: 表裡面的內容: 一:在不使用聚合函式的時候,group by 子句中必須包含所有的列,否則會報錯,如下 select name,MON from [

group by 聚合函式的使用

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 va

group by ,having, 聚合函式的使用

前言: 在此之前對資料庫中的group by 和having以及聚合函式一起使用的規則很模糊,今天特意總結了三者之間的使用規則,希望也能幫助到各位。             

關於GROUP BY聚合函式

轉自 http://www.cnblogs.com/wiseblog/articles/4475936.html 寫在前面的話:用了好久group by,今天早上一覺醒來,突然感覺group by好陌生,總有個筋別不過來,為什麼不能夠select * from Tabl

group by聚合函式

group by 的基本用法                                                                                                                            

淺析MySQL使用 GROUP BY 分組聚合細分聚合

官方 dev 錯誤 row 一個 求平均值 時也 total 正是 1. 聚合函數(Aggregate Function)   MySQL(5.7 ) 官方文檔中給出的聚合函數列表(圖片)如下: 詳情點擊https://dev.mysql.com/doc/refman/5

Hive中的去重 :distinct,group byROW_Number()視窗函式

一、distinct,group by與ROW_Number()視窗函式使用方法 1. Distinct用法:對select 後面所有欄位去重,並不能只對一列去重。 (1)當distinct應用到多個欄位的時候,distinct必須放在開頭,其應用的範圍是其後面的所有欄位,而不只是緊挨著它的一個欄位,而且di

ORA-00979:不是GROUP BY 表示式報錯的一些排錯GROUP BY 語句使用的注意事項

1、GROUP BY子句出現在FROM子句之後,在有提供WHERE子句的情況下,GROUP BY子句必須放在WHERE子句之前 2、GROUP BY子句只能包含聚合或分組的列,沒有聚合的列必須出現在Group By後,常用的聚合函式AVG(),COUNT(),MAX(),MIN(),SUM()

group byavg(),max(),min(),sum()函式的關係

資料庫表: create table pay_report(     rdate varchar(8),     --日期     region_id varchar(4),    --地市     

[MySQL]group by having 結合函數 的統計技巧

borde for border style sql effective ble post fec group by 與 having 允許字段使用函數,根據函數運行的結果group by分組或having設置選擇條件; 同時group by 與 having 也允許使用字

可以這樣去理解group by聚合函數

分享圖片 大牛 === 虛擬表 adding lpad highlight mage syntax 可以這樣去理解group by和聚合函數轉自 http://www.cnblogs.com/wiseblog/articles/4475936.html寫在前面的話:用了好久

IT咨詢顧問:group byjoin引發的項目救火

一對多 模仿 insert 取數據 spa com png color 我們 我又一次進行了項目救火,這次的原因是group by與join胡亂的堆徹導致的整個業務系統審核流程發生嚴重的錯誤。基礎的sql表關聯,group by,子表都理不清,我也只能對你面帶微笑,不想對你

關於group bygroup by having、where group by group by order by

姓名 函數 學生 art sco 分數 現在 大於 數學 轉載:https://blog.csdn.net/qq_28007533/article/details/72859474 現有表 score name kecheng fenshu 張三

資料分組聚合函式

到目前為止我們使用的聚合函式都是對普通結果集進行統計的,我們同樣可以使用聚合函式來對分組後的資料進行統計,也就是統計每一個分組的資料。我們甚至可以認為在沒有使用GROUP BY語句中使用聚合函式不過是在一個整個結果集是一個組的分組資料中進行資料統計分析罷了。 讓我們來看一下“檢視每個年齡段的員工的人數”如何

MYSQL查詢語句 group by having count()講解--玉米都督

    在介紹GROUP BY 和 HAVING 子句前,我們必需先講講sql語言中一種特殊的函式:聚合函式,  例如SUM, COUNT, MAX, AVG等。這些函式和其它函式的根本區別就是它們一般作用在多條記錄上。  SELECT S

MySQL 8.0裡GROUP BY有變化,注意

如題所示,MySQL 8.0開始 group by 預設是沒有排序的,那MySQL 8.0之前和 8.0 就有可能結果出現不同 需要警惕 執行如下SQL: 下面是8.0 版本: 執行相同的SQL: 如果這種情況下 進行分頁 5.7 版本: 8.0版本: 由上可見,兩個結果

mysql分組取每組前幾條記錄(排名) 附group byorder by的研究

select a.* from tb a where val = (select max(val) from tb where name = a.name) order by a.name--方法2:select a.* from tb a where not exists(select 1 from tb 

mysql group by order by 一起使用

我需要把資料分組排序,於是就想到先group by 然後 order by,可是執行的時候報錯 於是查資料發現group by 與order by 一起使用是要遵守一定原則的: 1.order by 的列,必須是出現在group by 子句裡的列   2.order

es6中箭頭函式 注意

var aaabbb = 'kkkooo' setTimeout(()=>{ var aaaa = 'kkkk'; console.log(this) },1000); 因為據我瞭解,箭頭函式指向是建立時候上下文的this指向,所以天真的認為上述函式中在箭頭函式內部建立的變數

mysql分組查詢group by having

select a.run_id,a.user_id,b.dept_id, count(*) as jishu from flow_run_prcs as a,user as b where a.US