Heim >Datenbank >MySQL-Tutorial >MySQL分组排序取前N条记录以及生成自动数字序列的SQL_MySQL

MySQL分组排序取前N条记录以及生成自动数字序列的SQL_MySQL

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-01 13:17:571291Durchsuche

bitsCN.com -- MySQL分组排序取前N条记录的最简洁的单条sql。

N
>(

结果如下:

mysql> SELECT * FROM (SELECT cid,author,COUNT(*) AS number FROM test GROUP BY cid,author) a     -> WHERE      -> 3>(    ->     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;+------+----------------+--------+| cid  | author         | number |+------+----------------+--------+|    1 | test3          |      4 ||    1 | test2          |      3 ||    1 | test1          |      2 ||    2 | test33         |      4 ||    2 | test22         |      3 ||    2 | test11         |      2 ||  200 | 200test_nagios |      1 |+------+----------------+--------+7 rows in set (0.00 sec)

N就是取分组之后的最前面几个判断,N=3就是取前3个

 -- 生成自动数字序列
SET @ROW=0;

bitsCN.com
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:MyISAM和Innodb比较_MySQLNächster Artikel:Group_Concat函数示例_MySQL