zoukankan      html  css  js  c++  java
  • mysql分组排序取前N条记录的最简洁的单条sql !

    -- mysql分组排序取前N条记录的最简洁的单条sql。
    use test;
    drop table if exists test;
    create table test (
      id int primary key,
      cid int,
      author varchar(30)
    ) engine=myisam;
    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');

    --
    select * from (select cid,author,count(*) as number from test group by cid,author) a
    where 
    2>(
        select count(*)
        from (select cid,author,count(*) as number from test group by cid,author) b
        where a.cid=b.cid and a.number<b.number
    )order by cid,number desc;

  • 相关阅读:
    ORM框架
    优酷项目1
    新年第一天
    前端第十天
    前端第九天
    前端第八天
    前端第七天
    前端第六天
    前端第五天
    月亮与六便士
  • 原文地址:https://www.cnblogs.com/zfying/p/2605183.html
Copyright © 2011-2022 走看看