博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql 分组排序
阅读量:6951 次
发布时间:2019-06-27

本文共 978 字,大约阅读时间需要 3 分钟。

需求:

   按照cid、author分组,再按照id倒叙,取出test表中前2条记录出来。

  建表以及初始数据如下:

DROP TABLE IF EXISTS test;CREATE TABLE test (id INT PRIMARY KEY,cid INT,author VARCHAR(30)) ENGINE=INNODB;  INSERT INTO test VALUES(1,1,'test1'),(2,1,'test1'),(3,1,'test2'),(4,1,'test2'),(5,1,'test2'),(6,1,'test3'),(7,1,'test3'),(8,1,'test3'),(9,1,'test3'),(10,2,'test11'),(11,2,'test11'),(12,2,'test22'),(13,2,'test22'),(14,2,'test22'),(15,2,'test33'),(16,2,'test33'),(17,2,'test33'),(18,2,'test33');INSERT INTO test VALUES (200,200,'200test_nagios');

解答:

   

SELECT    id,    cid,    authorFROM    (        SELECT            a.id,            a.cid,            a.author,            CASE        WHEN a.cid =@cid        AND a.author =@aut THEN            @x :=@x + 1        ELSE            @x := 1        END AS 'tmp' ,@cid := a.cid ,@aut := a.author,        @x AS r    FROM        test a,        (            SELECT                @x := 1 ,@cid := '' ,@aut := ''        ) b    ORDER BY     a.cid,a.author    ) tmpWHERE  r <= 2

 

转载地址:http://nfuil.baihongyu.com/

你可能感兴趣的文章
git拉取github上的分支和本地分支提交到github
查看>>
学习笔记——正则匹配方法整理
查看>>
面向对象编程 鸵鸟到底是不是鸟 企鹅是不是鸟?
查看>>
跟我一起学docker(九)--持续系统集成了解下git
查看>>
代理设计模式 实现 Retrofit 的 create
查看>>
CSS 实现 0.5px 边框线
查看>>
f-admin——基于Laravel框架开发的基础权限后台系统
查看>>
JavaScript常用算法
查看>>
Ionic2 分享(微信分享+QQ分享+复制到剪贴板+微博分享)
查看>>
LinkedIn庄振运:从国家部委公务员到硅谷系统性能专家,创新是唯一主旋律
查看>>
一行代码迁移TensorFlow 1.x到TensorFlow 2.0
查看>>
WEB前端性能优化及应用服务器性能优化和存储性能优化
查看>>
【云周刊】第200期:云栖专辑 | 阿里开发者们的第6个感悟:享受折磨
查看>>
Apache Spark Meetup China 第1期 最全资料下载
查看>>
Python零基础学习笔记(三十九)—— time
查看>>
数商云:B2C商城网站建设功能框架大解析
查看>>
拥有2000家门店,他如何晋升为服装界的新宠?
查看>>
k8s api文档 调用heapster metrics
查看>>
管理Kubernetes集群时需要关注的关键指标
查看>>
[资源整理]关于前端设计的那些博客儿~
查看>>