今天維護客戶的儲存過程時發現乙個問題,連鎖客戶只有銷售明細表,沒訂單表,而公司要求寫查詢訂單的儲存過程,客戶那邊使用的資料是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版本的根目錄下沒有...