sql语句:group by 子句

group by 子句 按组统计数据。

这个语句必须与聚合函数配合使用.否全则无法统计产生错误

例子:

  1. select orderid,sum(ordernum) as num  from order group by orderid
  2. //查找order表内orderid值不重复的记录,把ordernum和的值赋于别名num
  3. select orderid,ordernum from order group by orderid
  4. //这种写法是错误。因为没有用到函数。sum() avg()等

上面那句没用到函数产生错误的原因。现在Cngothic剖析一下
group by 子句 按组统计数据.意思
orderid ordernum
1 2
1 3
2 1
2 1

使用了group by orderid后记录数为2条
一条是orderid=1 一条是orderid=2。
不管orderid=1 还是orderid=2 .ordernum字段的值都有两条。那它返回哪一条尼。这样就产生错误。
如果使用了函数如:sum()
sum(ordernum)统计两条记录ordernum字段值的和也就是一条。这样正确。
下面再写条语句看下:

  1. select orderid,ordernum from order group by orderid,ordernum
  2. //正确。找查orderid,ordernum两个字段值都不重复的记录
  3. select orderid,ordernum,sum(ordernameid) as nameid from order group by orderid,ordernum
  4. //正确。

保证查询字段中返回唯一的记录才正确

,

Del.icio.us Google书签 Digg Live Bookmark Technorati Furl Yahoo书签 Facebook 百度搜藏 新浪ViVi 365Key网摘 天极网摘 和讯网摘 博拉网 POCO网摘 添加到饭否 QQ书签 Digbuzz我挖网

1 Comment so far...

  1. sql语句:统计函数SUM,AVG,MIN/MAX,COUNT-歌特中国 | 歌特金属,cngothic生活点滴,学习笔记(Sql,Net,Web2.0,Javacript,Seo,Cms)

    [...] 在文章sql语句:group by 子句说到函数。 在这篇文章中详细的介绍几个函数的用处与注意事项。 sum(num) //返回num字段值的和.包括值为null的记录 [...]

Leave a reply?