当前位置: 代码迷 >> Sql Server >> ,简明扼要,小白基础语法有关问题。求轻喷
  详细解决方案

,简明扼要,小白基础语法有关问题。求轻喷

热度:31   发布时间:2016-04-24 18:39:34.0
,,,,简明扼要,,,小白基础语法问题。。。。。。求轻喷
1.聚合函数count(),的括号里能放的是什么参数?目前只用过放*,别的没放过,能解释下么?
2.group by ,这个纠结很长时间了,后面跟很多列的话怎么分组啊,只用过跟一个列名的,但是有的时候为了需求,group by后面把select后面的所有字段名都加上,请问这时候是根据什么分组的,,,,




不解决问题且只会喷人的喷子离远点,俺的帖子不需要你的大驾光临,,欢迎帮顶和解答问题,(当然解决问题了喷我几句还是可以虚心接受的)
------解决方案--------------------

1、count() 这个括号,一种就是你说的放*,还有就是列,或者值,比如:

select COUNT(*),
       COUNT(1),
       COUNT(0),
       COUNT(100),
       COUNT(v)
from 
(
select 1 as v union all
select 0  union all
select 2 union all
select null
)t
/*
(无列名) (无列名) (无列名) (无列名) (无列名)
4 4 4 4 3
*/


你会发现,前几个都一样,怎么最后一个是3呢,其实count对于括号中的数字,只要这个值不是null,都会统计为1次,也就是说count计算的次数,不是sum求和。

当有值为null时,那么是不统计的,所以这就是count(V)的值为3,因为v列中最后一行数据是null