在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询。比如aaa表:
ID,NAME,SHU
1, a, 3
2, a, 4
3, b, 5
4, b, 7
5, a,
6, a, 20
例1:查询出现过2次的name。
往往初学者会错误地认为在where 语句里直接使用count()算法,很显然这个想法是错误的,count()方法并不能被用在where子句中,为了解决问题,我们可以在group by子句后面使用HAVING来做条件限制。
错误做法:select * from aaa where count(name)>=2 group by name;
正确做法:select * from aaa group by name HAVING count(name)>=2 ;
解释说明:HAVING 与 WHERE 类似,可用来决定选择哪些记录。HAVING 子句在SELECT语句中指定,显示哪些已用 GROUP BY 子句分组的记录。在GROUP BY组合了记录后, HAVING会显示 GROUP BY 子句分组的任何符合 HAVING 子句的记录。
例2:查询单一用户的SHU总和大于10的用户。
有前面的经验,把sum()方法写在HAVING子句中。
正确做法:select * from aaa group by name HAVING sum(SHU)>10 ;
注意:一个HAVING子句最多只能包含40个表达式,HAVING子句的表达式之间可以用AND和OR分割。
例3:sum 与count 的区别
select name, count(shu), sum(shu)
from aaa
group by name
结果为:a 3 27
b 2 12
可见:oracle 数据库中对空值的事不同的,count 函数认为没有此项,而sum函数不计算。
结论: 求和用累加 sum ,求行的个数用累计 count
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/meyou123/archive/2009/12/15/5014546.aspx
分享到:
相关推荐
在Oracle中,SUM函数可以结合CASE WHEN语句,使得条件求和变得更为灵活。 1. SUM与CASE WHEN结合使用 在描述的示例1中,我们看到了一个查询,它根据`AREA_CODE`字段对数据进行分组,并计算出`IPTV_NBR`和`ACC_NBR`...
根据提供的文件信息,我们可以深入探讨Oracle分析函数的相关知识点,特别是`SUM()`函数配合`OVER`子句的不同用法,以及`RANK()`, `DENSE_RANK()`, 和 `ROW_NUMBER()` 这三个窗口函数的应用场景。 ### Oracle分析...
* 求和:select sum(field1) as sumvalue from table1 * 平均:select avg(field1) as avgvalue from table1 * 最大:select max(field1) as maxvalue from table1 * 最小:select min(field1) as minvalue from...
- **求和**:Oracle 和 SQL Server 都使用 `SUM`。 - **标准差和方差**:Oracle 使用 `STDDEV` 和 `VARIANCE`,SQL Server 提供 `STDEV` 和 `VAR`。 这些是 Oracle 和 SQL Server 语法之间的一些基本区别,了解...
- POWER():计算一个数的幂。 2. 字符串函数: - CONCAT():连接两个或更多字符串。 - SUBSTR():从字符串中提取子串。 - LENGTH():返回字符串长度。 - REPLACE():替换字符串中的指定字符或子串。 - LTRIM...
### 鸿鹄论坛_oracle四大宝典之1:Oracle Sql基础 #### 一、SQL的起源和分类 ##### 1.1 SQL的起源 SQL(Structured Query Language,结构化查询语言)是一种用于管理和操作数据库的标准计算机语言。它最早由IBM的...
- `SUM()`: 求和。 - `AVG()`: 计算平均值。 - `MAX()`, `MIN()`: 找到最大值和最小值。 6. **连接和分组函数**: - `CONCAT()`: 连接两个或多个字符串。 - `GROUP BY`: 用于分组查询,常与聚合函数一起使用。...
Oracle分析函数是Oracle数据库提供的一个高级SQL特性,它允许在查询结果集中进行复杂的数据分析。分析函数通过使用OVER子句,可以对数据进行分区、排序以及定义窗口大小等功能。它们在数据仓库、报告和在线事务处理...
- 求和:`SELECT SUM(field1) AS sumvalue FROM table1` - 平均值:`SELECT AVG(field1) AS avgvalue FROM table1` - 最大值:`SELECT MAX(field1) AS maxvalue FROM table1` - 最小值:`SELECT MIN(field1) AS ...
Oracle 11g R2是Oracle数据库的一个重要版本,提供了许多增强的功能和性能优化,尤其在数据管理和操作方面。在这个版本中,对于SQL操作(包括SELECT、INSERT、UPDATE和DELETE)以及常用函数的理解和应用是数据库管理...
- `SUM()`:求和。 - `AVG()`:计算平均值。 - `MAX()`和`MIN()`:找出最大值和最小值。 二、Oracle常用SQL查询 1. **选择查询(SELECT)**: - 基本查询:`SELECT column1, column2 FROM table;` - 条件查询...
1. **数学函数**:Oracle提供了各种数学函数,如ABS()用于返回一个数的绝对值,SQRT()用于计算平方根,ROUND()用于四舍五入,MOD()用于求余数,以及EXP()用于计算指数等。 2. **日期和时间函数**:在Oracle中,DATE...
以上内容详细介绍了Oracle9i中常用的SQL查询语句,涵盖了条件查询、统计计算、分组汇总、排序输出等多个方面,为初学者提供了全面而深入的学习资料。通过这些实例,读者可以更好地理解和掌握Oracle数据库的基本操作...
6. 聚合函数:如COUNT(计数)、SUM(求和)、AVG(平均值)、MAX/MIN(最大值/最小值)等,用于汇总数据。 7. 位操作函数:如BITAND(按位与)、BITOR(按位或)、BITNOT(按位非)等,处理二进制数据。 8. 非...
6. **统计函数**:Oracle提供了一系列统计函数,如COUNT用于计算行数,SUM用于求和,AVG用于求平均值,MAX和MIN用于找出最大值和最小值,以及VARiance和Stddev用于计算方差和标准差,帮助分析数据集的特征。...
在本篇中,我们将深入探讨几个关键的分析函数,包括AVG、SUM、COUNT、FIRST_VALUE、LAST_VALUE、LAG和LEAD。 1. AVG([DISTINCT|ALL] expr) OVER(analytic_clause) AVG函数用于计算平均值,分为聚合函数和分析函数...
- 内置函数:如COUNT()计算行数,SUM()求和,AVG()求平均值,MAX()和MIN()求最大最小值。 - 字符串函数:如LENGTH()计算长度,UPPER()转换为大写,LOWER()转换为小写,SUBSTR()截取子串。 - 日期时间函数:如...
根据提供的文件标题、描述以及部分内文,我们可以推断出这份文档主要介绍的是Oracle数据库中的110个常用函数。由于提供的部分内容似乎并不是标准的文本格式,并且包含了一些乱码和不可读字符,这里将尝试根据给定的...
- `SUM()`: 求和。 - `AVG()`: 计算平均值。 - `MIN()` 和 `MAX()`: 找到最小值和最大值。 3. **移动函数**: - `LEAD()`: 提取当前行之后的值。 - `LAG()`: 提取当前行之前的值。 - `FIRST_VALUE()`: 获取...