1、获取记录的条数
select count(*) from order where ...;
注:表上有pk,那count(*) 一定会走pk的。
2、使用rownum排序分页
SELECT *
FROM ( SELECT rownum linenum, t1.*
FROM (
SELECT *
FROM order
where test='test'
ORDER BY #field# DESC) t1
WHERE rownum <= #endNum#)
WHERE linenum >= #startNum#
注:field必须建立索引
1、 SQL中一些合计函数(Aggregate functions)
功能:Aggregate functions 的操作面向一系列的值,并返回一个单一的值。
表1 常用的Aggressive function
函数 | 描述 |
COUNT(*) | 返回被选行数 |
COUNT(DISTINCT column) | 返回相异结果数目 |
COUNT(column) | 返回某列的行数(不包括NULL值) |
SUM(column) | 返回某列的总和 |
AVG(column) | 返回某列的平均值 |
MAX(column) | 返回某列的最大值 |
MIN(column) | 返回某列的最小值 |
注:这些Aggressive function并不是所有的数据库都支持的。
2、 GROUP BY字句
功能:GROUP BY字句用于结合合计函数,根据一个或多个列结果集进行分组
语法:
SELECT column_name, aggregare_function(column_name)
FROM table_name
WHERE column_name operate value
GROUP BY column_nam
3、 HAVING字句
功能:WHERE 关键字无法与合计函数一起使用
SELECT column_name, aggregate_function(column_name)
FROM table_name
WHERE column_name operator value
GROUP BY column_name
HAVING aggregate_function(column_name) operator value
例子:SELECT login_id, count(*) FROM order GROUP BY login_id HAVING count(*)>10000