limit
limit m, n
:从第m条开始取(m>=0),取n条数据。例如:
求Numbers数据库中number字段第3大的数值:
select number from Numbers limit 2, 1
求Numbers数据库中number字段最小的10个数组:
select number from Numbers order by number desc limit 0, 10
having
处理顺序:where>group by>having
先处理where,再根据group by进行分组,再通过having进行筛选。
显示每个地区的总人口数和总面积:
SELECT region, SUM(population), SUM(area) FROM bbc GROUP BY region
上面查询字段的意思是,先通过region分组,然后显示每个region下的population和are总数
显示每个地区的总人口数和总面积.仅显示那些面积超过1000000的地区:
SELECT region, SUM(population), SUM(area)
FROM bbc
GROUP BY region
HAVING SUM(area)>1000000
首先通过region分组,然后计算每个region下population和area的总和,最后通过having筛选出area总和超过1000000的region。
这里having不能被where替代,因为where比group by先行,就不能按region来统计sum(area)。
having子句可以让我们筛选分组后的各组数据
但是having和where在单独使用时是对等的:
SELECT regagent,amount FROM `cy_pay_ok` having amount>1000 ;
SELECT regagent,amount FROM `cy_pay_ok` where amount>1000 ;