人如梦0 2022-02-28 14:52 采纳率: 50%
浏览 30
已结题

这一条sql 为什么会执行成功 SELECT *,COUNT(c_id) FROM Score GROUP BY c_id

创建表
Create table Score(
s_id VARCHAR(20),
c_id VARCHAR(20) not null default '',
s_score INT(3),
primary key(s_id,c_id)
);
表数据

insert into Score values('01' , '01' , 80);
    insert into Score values('01' , '02' , 90);
    insert into Score values('01' , '03' , 99);
  insert into Score values('02' , '01' , 70);
  insert into Score values('02' , '02' , 60);
  insert into Score values('02' , '03' , 80);
  insert into Score values('03' , '01' , 80);
  insert into Score values('03' , '02' , 80);
  insert into Score values('03' , '03' , 80);
  insert into Score values('04' , '01' , 50);
  insert into Score values('04' , '02' , 30);
  insert into Score values('04' , '03' , 20);
  insert into Score values('05' , '01' , 76);
  insert into Score values('05' , '02' , 87);
  insert into Score values('06' , '01' , 31);
  insert into Score values('06' , '03' , 34);
  insert into Score values('07' , '02' , 89);
  insert into Score values('07' , '03' , 98);

执行sql
SELECT *,COUNT(c_id) FROM Score GROUP BY c_id
执行结果
s_id c_id s_score count(c_id)
01 01 80 6
01 02 90 6
01 03 99 6
01 04 null 1
02 05 4 1

预想结果

[Err] 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'qblclouddb.agt_base_customer.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

  • 写回答

4条回答 默认 最新

  • DarkAthena ORACLE应用及数据库设计方案咨询师 2022-02-28 21:56
    关注

    你查一下这个

    SELECT @@GLOBAL.sql_mode;
    

    如果里面不包含"ONLY_FULL_GROUP_BY",那么就不会报错,反之就会报错。
    老版本的mysql里默认是不含这个的,mysql8.0以上默认含这个

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 创建了问题 2月28日