房天下 > 房天下问答 > 业主生活 > 其他
  • SQL 为什么在group by中必须加上sname

    create view s_sc(sno,sname,ccount,gavg,gmax,gmin)asselect Student.Sno,sname,COUNT(cno),AVG(crade),MAX(crade),MIN(crade)from Student, scwhere Student.Sno=SC.Snogroup by Student.Sno ,sname; 为什么在group by中必须加上sname

    提问者:晴韵晨曦

    发布于2010-11-04

共1个回答
  • suyunxiangben 丨Lv 3
    你可以看如下例子:Sno, sname, COUNT(cno), AVG(crade), MAX(crade), MIN(crade)001 aaa 0 0 0 0002 bbb 0 0 0 0001 ccc 0 0 0 0因为gourp by语句不会考虑你的主键,是否唯一等条件,而你select的可能是主键列,也可能是其他列。在上面的数据中,你如果不加入group by sname, 而你又select了sname,那么SQL在输出001这条信息时,将不知道是拿哪个sname,是aaa呢还是ccc呢?所以group by 语句必须包含所有你select 的那些列。
    +1 2010-11-05 举报
热门人气推荐
免责声明:问答内容均来源于互联网用户,房天下对其内容不负责任,如有版权或其他问题可以联系房天下进行删除。