記錄下mysql的分組聚合函式group by

2021-08-29 22:53:27 字數 860 閱讀 7244

今天維護客戶的儲存過程時發現乙個問題,連鎖客戶只有銷售明細表,沒訂單表,而公司要求寫查詢訂單的儲存過程,客戶那邊使用的資料是sqlserver,我使用了分組聚合函式group by ;

例如:這樣子寫sqlserver會報錯,因為group by 要求查詢的字段也得包含在聚合函式裡。

select orderno,paymoney,sum(money) from detail group by orderno
而我自己用mysql做了模擬練習做了對比:

---模擬明細表

create table detail(

detailid int primary key auto_increment,---明細主鍵

paymoney double,--實付金額

money double,--應付金額

orderno varchar(20)--訂單號

);

detail表中插入了兩筆訂單資料如下:

detailid

paymoney

money

orderno11

200122

300133

400144

500255

600266

7002

按照上面的sqlserver操作是可以實現的,不會報錯,而且paymoney顯示的是第一條記錄,如圖:

這裡簡單對比了sqlserver和mysql 分組函式group by 的不同點,mysql的感覺不夠嚴謹,希望有大神多多指教

分組聚合函式使用

1.mysql 的分組合併函式group concat group concat 會計算哪些行屬於同一組,將屬於同一組的列顯示出來。要返回哪些列,由函 數引數 就是欄位名 決定。分組必須有個標準,就是根據group by指定的列進行分組。例 select 分組字段,group concat 合併字段...

MySQL常用聚合函式

官方文件 aggregate group by functions name description g return the erage value of the argument bit and return bitwise and bit or return bitwise or bit xo...

記錄下安裝mysql遇到的坑

參考資料 轉而複製dll檔案到c windows system32目錄下,再次執行 雖然還是錯誤提示,但好歹已經能成功載入了。試了一下mysqld指令也能成功執行。輸入cmd指令啟動服務 參考資料 出錯原因在於安裝的mysql版本為5.7.21。而安裝成參考的文件是5.6的。5.7版本的根目錄下沒有...