程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySql查詢語句中解決“該列沒有包含在聚合函數或者groupby子句中”的相關問題方法,groupby子句

MySql查詢語句中解決“該列沒有包含在聚合函數或者groupby子句中”的相關問題方法,groupby子句

編輯:MySQL綜合教程

MySql查詢語句中解決“該列沒有包含在聚合函數或者groupby子句中”的相關問題方法,groupby子句


 

首先引入語句來源,表結構和數據如下:

需求是:查出員工(personname)在不同店鋪(store)的總薪酬(salary),相同店鋪輸出store,不同店鋪輸出multi_store。

正確查詢語句如下:

SELECT personname,(case when count(distinct Store)>1 then 'multi_store' else MAX ( store) end),sum(Salary) FROM dbo.StaffInformation
GROUP BY PersonName

 第一想到的語句:(但是達不到想要的結果或者直接報錯:“選擇列表中的列'列名'無效,因為該列沒有包含在聚合函數或group by 子句中”)

SELECT personname,(case when count(distinct Store)>1 then 'multi_store' else store end),sum(Salary) FROM dbo.StaffInformation
GROUP BY PersonName

 

遇到類似的問題:首先看看輸出的字段是不是你需要的,如果需要但是又不能放在group by中(因為放在group by中就得不到分組的效果,但是不放就報錯)

就要考慮將store這樣的字段用個函數處理下。其實想想挺簡單的,多遇到點問題 就能慢慢得到自己的一套解決問題的方案了。

 

   有問題可以隨時評論。我基本上每天都會來一下。有問題互相探討,學習,進步。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved