最近は group by で指定していない項目でも select に含めることができる

https://docs.oracle.com/cd/E17952_01/mysql-8.0-ja/group-by-handling.html
https://e-words.jp/w/%E9%96%A2%E6%95%B0%E5%BE%93%E5%B1%9E%E6%80%A7.html#:~:text=%E9%96%A2%E6%95%B0%E5%BE%93%E5%B1%9E%E6%80%A7%E3%81%A8%E3%81%AF%E3%80%81%E3%83%AA%E3%83%AC%E3%83%BC%E3%82%B7%E3%83%A7%E3%83%8A%E3%83%AB%E3%83%87%E3%83%BC%E3%82%BF%E3%83%99%E3%83%BC%E3%82%B9%EF%BC%88RDB%EF%BC%89%E3%81%AE,%E6%B1%BA%E3%81%BE%E3%82%8B%E3%81%A8%E3%81%84%E3%81%86%E6%80%A7%E8%B3%AA%E3%81%AE%E3%81%93%E3%81%A8%E3%80%82
SQL92標準仕様では、group by で指定していない項目は select に含めることができなかった。
しかしSQL99標準仕様では、group by で指定していない項目でも、1つの値に定まることが明白な項目は select に含めることができる。
たとえば、以下のような場合である。

select M.ID
     , M.NAME -- この項目はm.idでグループ化すると必ず一意になるのでgroup byに含まれていなくてもいい
     , sum(T.QUANTITY)
  from M_EMPLOYEE as M
  left join T_SALES as T on M.ID = T.EMPLOYEE_ID
 group by M.ID

1つの値に定まることが明白でない項目を select に含めるとエラーになる。



https://itsakura.com/mysql-groupby
http://tech.hapicky.com/archives/71
MySQLでは、ONLY_FULL_GROUP_BY 設定が有効になっている場合は上記のような動きをする。
ONLY_FULL_GROUP_BY 設定が無効になっている場合は、1つの値に定まらないグループ化されない項目をselectに含めたときエラーが出ない。この場合はグループ内のどれか1つの値が取得されるが、どの値が取得されるかは保障されない。