今天使用MySQL查询,有几个知识点
mysql分组排序并获得排序号码
数据表 grades:
需要得到查询结果:
sql语句:
select *, (select count(1) + 1 from grades B where A.gender = B.gender and A.grade < B.grade) as rank from grades A order by gender , grade desc;
参见:
select count(*)和select count(1)的区别
一般情况下,Select Count (*)和Select Count(1)两着返回结果是一样的
假如表沒有主键(Primary key), 那么count(1)比count(*)快,
如果有主键的話,那主键作为count的条件时候count(主键)最快
如果你的表只有一个字段的话那count(*)就是最快的
count(*) 跟 count(1) 的结果一样,都包括对NULL 的统计,而count(column) 是不包括NULL 的统计
select sum(1)的使用
select count(*)返回所有满足条件的记录数,此时同select sum(1)
但是sum()可以传任意数字,负数、浮点数都可以,返回的值是传入值n*满足条件记录数m