coding
zhwh_max的gravatar頭像
zhwh_max2019-08-26 19:36:24

sql語句 group by 后面的字段 要必須 與 select 后面的字段(除聚合函數) 保持一致嗎??

sql語句
group by 后面的字段  要必須  與  select 后面的字段(除聚合函數) 保持一致嗎?? 

所有回答列表(8)
wjxiongw的gravatar頭像
wjxiongw LV68月27日

必須的,除了除聚合函數

Tonfay的gravatar頭像
Tonfay LV278月28日

5.7默認是這樣的

sql_mode 有一個 ONLY_FULL_GROUP_BY 配置項

奮斗中的程序猿的gravatar頭像

語法:group by 分組字段

迷瞪的一批的gravatar頭像
迷瞪的一批 LV58月30日

比如說我們有一個學生表格(student),包含學號(id),課程(course),分數(score)等等多個列

SELECT id, COUNT(course) as numcourse, score

FROM student

GROUP BY id

此時查詢便會出錯,錯誤提示如下:

Column ‘student.score' is invalid in the select list because it is not contained in either an aggregate function or the GROUP BY clause.

出現以上錯誤的原因是因為一個學生id對應多個分數,如果我們簡單的在SELECT語句中寫上score,則無法判斷應該輸出哪一個分數。如果想用score作為select語句的參數可以將它用作一個聚合函數的輸入值,如下例,我們可以得到每個學生所選的課程門數以及每個學生的平均分數:

SELECT id, COUNT(course) as numcourse, AVG(score) as avgscore

FROM student

GROUP BY id

qw154732533的gravatar頭像
qw154732533 LV59月2日

必須的,除了除聚合函數

weiwei1991的gravatar頭像
weiwei1991 LV159月4日

是的。除了除聚合函數

hongxinmiao的gravatar頭像
hongxinmiao LV69月5日

是的必須一致,因為以group by 后面的字段分組中對應得到的是一條或多條數據聚合成的函數結果

liuqingfang000的gravatar頭像
liuqingfang000 LV39月23日

是的,因為以group by 后面得到的可能是一條或多條數據結果

頂部客服微信二維碼底部
>掃描二維碼關注最代碼為好友掃描二維碼關注最代碼為好友
谁有北京pk10计划群