MySql排名查询

-- --------------------------------------------------------

--
-- 表的结构 `score`
--

CREATE TABLE IF NOT EXISTS `score` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(32) NOT NULL DEFAULT ‘‘,
  `scores` int(11) NOT NULL DEFAULT ‘0‘,
  PRIMARY KEY (`id`)
) ENGINE=MyISAM  DEFAULT CHARSET=utf8 AUTO_INCREMENT=6 ;

--
-- 转存表中的数据 `score`
--

INSERT INTO `score` (`id`, `name`, `scores`) VALUES
(1, ‘a‘, 97),
(2, ‘b‘, 90),
(3, ‘c‘, 98),
(4, ‘d‘, 97),
(5, ‘e‘, 66);

select a.name, a.scores, (select count(id) from score where scores>=a.scores) as mc
  from score a limit 0, 10

select * from (
select a.name, a.scores, (select count(id) from score where scores>=a.scores) as mc
  from score a
) b where b.mc<=10

select * from
(select (select count(id)+1  from score where scores>a.scores) as mc,a.name, a.scores
from scroe a) b where b.mc<=10    order by b.mc

MySql排名查询,布布扣,bubuko.com

时间: 2024-11-05 02:36:20

MySql排名查询的相关文章

MySQL慢查询(二) - pt-query-digest详解慢查询日志

一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等,可以借助分析结果找出问题进行优化. 二.安装pt-query-digest 1.下载页面:https://www.pe

MySQL慢查询(二) - pt-query-digest详解慢查询日志 pt-query-digest 慢日志分析

随笔 - 66 文章 - 0 评论 - 19 MySQL慢查询(二) - pt-query-digest详解慢查询日志 一.简介 pt-query-digest是用于分析mysql慢查询的一个工具,它可以分析binlog.General log.slowlog,也可以通过SHOWPROCESSLIST或者通过tcpdump抓取的MySQL协议数据来进行分析.可以把分析结果输出到文件中,分析过程是先对查询语句的条件进行参数化,然后对参数化以后的查询进行分组统计,统计出各查询的执行时间.次数.占比等

ELK分析MySQL慢查询日志并生成图像

一.背景 1.MySQL慢查询日志格式: # Time: 181109 15:04:08 # [email protected]: tvpayrcdev[tvpayrcdev] @ [172.16.14.51] Id: 8960747 # Query_time: 35.918265 Lock_time: 0.000141 Rows_sent: 1 Rows_examined: 11699162 SET timestamp=1541747048; select count(*) from trad

如何在MySQL中查询每个分组的前几名【转】

问题 在工作中常会遇到将数据分组排序的问题,如在考试成绩中,找出每个班级的前五名等. 在orcale等数据库中可以使用partition语句来解决,但在mysql中就比较麻烦了.这次翻译的文章就是专门解决这个问题的 原文地址: How to select the first/least/max row per group in SQL 翻译 在使用SQL的过程中,我们经常遇到这样一类问题:如何找出每个程序最近的日志条目?如何找出每个用户的最高分?在每个分类中最受欢迎的商品是什么?通常这类"找出每

mysql慢查询分析工具比较与实战

00 前言 在进行mysql性能优化的时候,第一个想到的便是查看慢sql. 但是对于慢sql有没有什么好的工具进行分析呢? 推荐两个工具mysqldumpslow及pt-query-digest. mysqlslowdump较为简单,常用命令: #得到返回记录最多的20个sql mysqldumpslow -s r -t 20 slowSQl.log # 得到平均访问次数最多的20条sql mysqldumpslow -s ar -t 20 slowSQl.log 如果linux上没有安装mys

mysql子查询慢的问题

当你在用explain工具查看sql语句的执行计划时,若select_type 字段中出现"DEPENDENT SUBQUERY"时,你要注意了,你已经掉入了mysql子查询慢的"坑"...下面我们来看一个具体的例子 有这样一条查询语句: SELECT gid,COUNT(id) as count FROM shop_goods g1 WHERE status =0 and gid IN (SELECT gid FROM shop_goods g2 WHERE si

Mysql——子查询

子查询的位置: select 中.from 后.where 中.group by 和order by 中无实用意义. 子查询分为如下几类: 1,标量子查询:返回单一值的标量,最简单的形式. 2,列子查询:返回的结果集是 N 行一列. 3,行子查询:返回的结果集是一行 N 列. 4,表子查询:返回的结果集是 N 行 N 列. 可以使用的操作符:= > < >= <= <> ANY IN SOME ALL EXISTS 标量子查询:是指子查询返回的是单一值的标量,如一个数字

mysql 怎么查询出,分组后的总条数。。。也就是有多少组数。。。。怎么写

SELECT COUNT(*) AS 多少组数FROM( SELECT id FROM 表 GROUP BY id) subQuery;Mysql,有一个表含有以下字段,uid 发帖人id,title 发帖标题,tc 发帖内容,time 发帖时间,用一条语句算出昨天发帖书大于10的,一共有多少人? select count(*) from (select distinct startperson_id,count(startperson_id) as num from apphome_finan

Mysql慢查询日志脚本

#!/bin/bash LOG=/diskb/mysql/slowlog/   #定义日志存储路径 DATE=`date +"%Y-%m-%d"`   #定义时间参数 user=root                                 #填写MySQL账户信息 passwd=123456 mysql -u$user -p$passwd -e "set global slow_query_log=0" #停止mysql慢查询日志 mysql -u$us