7th
2008,03
sql语句:group by 子句
group by 子句 按组统计数据。
例子:
- select orderid,sum(ordernum) as num from order group by orderid
- //查找order表内orderid值不重复的记录,把ordernum和的值赋于别名num
- select orderid,ordernum from order group by orderid
- //这种写法是错误。因为没有用到函数。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字段值的和也就是一条。这样正确。
下面再写条语句看下:
- select orderid,ordernum from order group by orderid,ordernum
- //正确。找查orderid,ordernum两个字段值都不重复的记录
- select orderid,ordernum,sum(ordernameid) as nameid from order group by orderid,ordernum
- //正确。
保证查询字段中返回唯一的记录才正确
Name: Cngothic 































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