项目的报表开发,需要对数据的部分列进行count()查询,然后把统计数据返回,放在图表中显示。
本文对数据查询部分做一些小结。
- 只对一列的数据统计的时候可以按照下面的代码进行统计,:
select user.name,count(nvl(user.name),0) count_
from user
group by user.name
2 对多个列的数据统计的时候可以按照下面的代码进行统计,:
select user.grade,
user.name,
grade.name,
count(1) total
from user
left join grade on grade.id=user.garde
group by user.grade, user.name
count(1),其实就是计算一共有多少符合条件的行。
1并不是表示第一个字段,而是表示一个固定值。
其实就可以想成表中有这么一个字段,这个字段就是固定值1,count(1),就是计算一共有多少个1.
同理,count(2),也可以,得到的值完全一样,count(‘x’),count(‘y’)都是可以的。一样的理解方式。在你这个语句理都可以使用,返回的值完全是一样的。就是计数。
count(*),执行时会把星号翻译成字段的具体名字,效果也是一样的,不过多了一个翻译的动作,比固定值的方式效率稍微低一些。