SQL count()函数与sum()函数

count()

COUNT() 函数返回匹配指定条件的行数。SELECT COUNT(column_name) FROM table_name 

COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)

1.SELECT COUNT(Customer) AS CustomerNilsen FROM Orders                           返回CustomerNilsen表中customer字段有值的行数的统计数
2.SELECT COUNT(Customer) AS CustomerNilsen FROM Orders WHERE Customer='Carter' 返回CustomerNilsen表中customer字段有值的行数的统计数,并且值是'Carter'
3.SELECT age,name,COUNT(1) AS CustomerNilsen FROM Orders 
WHERE name='张三' group by age,name 返回CustomerNilsen表中customer字段有值的行数的统计数,并且值是'张三',但是为什么要加,group by column_name
原因如下:
Student有列:ID,Name,Age
            1,张三,18
            2,李四,19
            3,王五,20
            4,赵六,21
按照第三条sql:查出结果是
age name count(1)
20 王五 1
21 赵六 1
18 张三 1
19 李四 1
Student有列:ID,Name,Age
            1,张三,18
            2,张三,19
            3,王五,20
            4,赵六,21
表的数据变成上面,你想如果不group by,ID为1和2的name相同,ID为1的age是显示18了,还是19了,ID为2的age是显示19了,还是18了其实第一次表的数据不group by age没事,因为name都不相同,但是
第二次表的数据的,name有相同的,错误上面指出了,为避免这张情况,系统是没有这么智能的,所以用了聚集函数的sql语句规定都得group by 查询的字段



sum():
SUM() 函数返回数值列的总数(总额)。SELECT SUM(column_name) FROM table_name


因为每次用到的时候,好像理解,但是隔一段时间去用的时候,又得花一段时间去消化,其实就是没有彻底的理解,
所以今天特地花一段时间来研究下,也不知道解释的合不合理,请各位对这方面熟悉的高手,也给我指点指点,感激不尽

posted on 2012-06-01 10:08  lovebeauty  阅读(21196)  评论(0编辑  收藏  举报

导航