select actor_id,@curr_cnt:=cnt as cnt ,
@rank:=IF(@prev_cnt!=@curr_cnt,@rank+1,@rank) as rank,
@prev_cnt:=@curr_cnt as dummy
from(
select actor_id,count(*) as cnt from film_actor
group by actor_id ORDER BY cnt desc
) as der,
(select @curr_cnt:=0,@prev_cnt:=0,@rank:=0 ) as t -- 实际上相当于赋值操作 -- 排名,考虑并列情况
SELECT @rownum:=@rownum+1 AS rownum,IF(@total = cnt ,@rank ,@rank :=@rownum) AS rank ,
@total := cnt as total1, der.* FROM
(
select actor_id,count(*) as cnt from film_actor
group by actor_id ORDER BY cnt desc
) as der,
( SELECT @rank := 0 ,@rownum := 0 ,@total := NULL ) as t
-- c100w 目标表  c10w 源表    对应关系 c10w.id=c100w.id
update c100w,c10w set c100w.grender=c10w.grender where c10w.id=c100w.id -- 10w 2.083s

常见性能优化场景:

1、多表连接查询很慢,而且不论结果多少,查询耗时差不多。可能原因缺少索引导致全表扫码 ,考虑索引优化

查询缺少索引时,减少表连接看耗时是否减少,再排查连接表是否有索引。

MySQL 排名统计的更多相关文章

  1. MySQL 排名统计(常用功能函数)

    select actor_id,@curr_cnt:=cnt as cnt , ,@rank) as rank, @prev_cnt:=@curr_cnt as dummy from( select ...

  2. MySQL查询统计,统计唯一值并分组

    做个笔记 SQLyog客户端访问MySQL服务器 统计数据:次数总数, 次数成功率,对象(obj)总数,对象(obj)成功率 要求:按时间排序和分组 sql语句如下: SELECT a.date AS ...

  3. Atitit mysql数据库统计信息

    Atitit mysql数据库统计信息 SELECT table_name, table_rows, index_length, data_length, auto_increment, create ...

  4. MySql 简单统计查询消耗时间脚本

    MySql 简单统计查询消耗时间脚本 by:授客 QQ:1033553122 drop procedure if exists selectTime; delimiter; create proced ...

  5. MySQL分段统计SQL写法 与 Mybatis 异常 java.math.BigDecimal cannot be cast to java.lang.Integer

    mysql> select end) as '<60', end) as '60~69', end) as '70~79', end) as '80~89', end) as '>= ...

  6. MySQL的统计信息学习总结

    统计信息概念 MySQL统计信息是指数据库通过采样.统计出来的表.索引的相关信息,例如,表的记录数.聚集索引page个数.字段的Cardinality.....MySQL在生成执行计划时,需要根据索引 ...

  7. mysql 分组统计、排序、取前N条记录解决方案

    需要在mysql中解决记录的分组统计.排序,并抽取前10条记录的功能.现已解决,解决方案如下: 1)表结构 CREATE TABLE `policy_keywords_rel` ( `id` int( ...

  8. MySQL索引统计信息更新相关的参数

    MySQL统计信息相关的参数: 1. innodb_stats_on_metadata(是否自动更新统计信息),MySQL 5.7中默认为关闭状态 仅在统计信息配置为非持久化的时候生效. 也就是说在i ...

  9. mysql收集统计信息

    一.手动  执行Analyze table innodb和myisam存储引擎都可以通过执行“Analyze table tablename”来收集表的统计信息,除非执行计划不准确,否则不要轻易执行该 ...

随机推荐

  1. Ubuntu安装Hadoop与Spark

    更新apt 用 hadoop 用户登录后,我们先更新一下 apt,后续我们使用 apt 安装软件,如果没更新可能有一些软件安装不了.按 ctrl+alt+t 打开终端窗口,执行如下命令: sudo a ...

  2. 归一化方法 Normalization Method

    1. 概要 数据预处理在众多深度学习算法中都起着重要作用,实际情况中,将数据做归一化和白化处理后,很多算法能够发挥最佳效果.然而除非对这些算法有丰富的使用经验,否则预处理的精确参数并非显而易见. 2. ...

  3. go interface

    //所有的结构体 都实现了空接口 //接口类型转换 结构体变量 = 接口名(实现接口的结构体变量) 只能高级转为低级 就是转前的接口中方法在转后接口中都有实现 package main import ...

  4. C#-WebForm-复合控件

    学习顺序:1.如何绑定数据 2.如何设置绑定项 3.如何取出数据 1.RadioButton - 单选按钮 RadioButtonList - 单选按钮组 控件中的ID生成了相同名字的 ID.Name ...

  5. iframe 跨域相互操作

    我们在开发后台管理系统时可能会经常要跟 iframe 打交道,因为现在大部分后台管理系统都是页面内嵌iframe,所以有时候两者之间就难免要互相通信,但浏览器为了安全的原因,所以就禁止了不同域的访问, ...

  6. 报错:MySQL check the manual that corresponds to your MySQL server version for the right syntax

    今天在向MySQL中插入数据时,报了标题的错误,因为我用的是session.save(object)方法,后台打印出的object和sql语句都没有问题,后来在网上查询,发现http://blog.c ...

  7. word中公式居中标号没有右对齐

    打开视图-标尺,调整右侧标尺就行了.

  8. Apache Shiro 学习记录2

    写完上篇随笔以后(链接).....我也想自己尝试一下写一个Strategy.....Shiro自带了3个Strategy,教程(链接)里作者也给了2个.....我想写个都不一样的策略.....看来看去 ...

  9. 【转载】在IT界取得成功应该知道的10件事

     在IT界取得成功应该知道的10件事 2011-08-11 13:31:30 分类: 项目管理 导读:前面大多数文章都是Jack Wallen写的,这是他的新作,看来要成为NB程序员还要不停的自我总结 ...

  10. lcok-free简易实现

    lock-free是一种基于原子变量类来构建的非阻塞同步算法. 比较并交换(compare-and-swap) 我们经常会先检查某项东西,然后对其进行修改,如if(X...) {X=...}.这种行为 ...