多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區(qū)平臺 聯系我們 | 收藏本站
阿里云優(yōu)惠2
您當前位置:首頁 > 數據庫 > 數據庫應用 > MySQL分組然后取每個分組中按照某些字段排序的topN條數據

MySQL分組然后取每個分組中按照某些字段排序的topN條數據

來源:程序員人生   發(fā)布時間:2014-12-20 08:48:17 閱讀次數:4915次

MySQL分組然后取每一個分組中依照某些字段排序的topN條數據

建表

CREATE TABLE `t` ( `a` int(11) DEFAULT NULL, `b` int(11) DEFAULT NULL, `c` int(11) DEFAULT NULL, `itime` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP ) ENGINE=InnoDB DEFAULT CHARSET=utf8;





插入測試數據


INSERT INTO t(`a`, `b`, `c`, `itime`) VALUES ('1', '1', '1', '2014⑴2-04 19:07:01'); INSERT INTO t(`a`, `b`, `c`, `itime`) VALUES ('1', '1', '2', '2014⑴2-04 19:07:02'); INSERT INTO t (`a`, `b`, `c`, `itime`) VALUES ('1', '1', '3', '2014⑴2-04 19:07:03'); INSERT INTO t (`a`, `b`, `c`, `itime`) VALUES ('1', '1', '4', '2014⑴2-04 19:07:04'); INSERT INTO t(`a`, `b`, `c`, `itime`) VALUES ('1', '2', '1', '2014⑴2-04 19:07:01'); INSERT INTO t (`a`, `b`, `c`, `itime`) VALUES ('1', '2', '2', '2014⑴2-04 19:07:02'); INSERT INTO t(`a`, `b`, `c`, `itime`) VALUES ('1', '2', '3', '2014⑴2-04 19:07:03'); INSERT INTO t (`a`, `b`, `c`, `itime`) VALUES ('1', '2', '4', '2014⑴2-04 19:07:04'); INSERT INTO t(`a`, `b`, `c`, `itime`) VALUES ('1', '2', '5', '2014⑴2-04 19:07:05'); INSERT INTO t (`a`, `b`, `c`, `itime`) VALUES ('1', '2', '6', '2014⑴2-04 19:07:06');






依照a,b分組,并且依照itime字段倒敘排列,取每組的top3


SELECT t.a, t.b, substring_index( group_concat( IFNULL(t.c,0) ORDER BY t.itime DESC ), ",", 3 ) c, substring_index( group_concat( t.itime ORDER BY t.itime DESC ), ",", 3 ) time FROM t t GROUP BY t.a ,t.b;


結果集以下:




注意:

1、此方法需要上層利用再做1次處理:上層利用取出結果集以后,將數據依照逗號,再切分成topN份數據,(注意,有可能有些組沒有topN份數據)

2、IFNULL判斷很重要,否則MySQL會將下1條數據放進去。如果c列為NULL,則設置1個默許值為0,避免將第4條數據(1)放進去。


       下圖是沒有IFNULL的毛病答案:


PS:如果不是萬不得已,沒法實現此功能。不建議在MySQL中使用如此復雜的SQL語句。


如果你有更好的寫法,請回復1下,讓我知道,謝謝



生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 欧美一级www毛片 | 亚洲综合在线播放 | 日韩欧美在线综合 | 国产成人a福利在线观看 | 日韩高清一区二区三区五区七区 | 亚洲免费影院 | 午夜免费啪视频观看网站 | 性xxxx黑人与亚洲 | 亚洲视频在线视频 | 国产欧美另类久久精品91 | 日韩欧美国产另类 | 国产模特众筹精品视频 | 成人国产片 | 欧美成人精品一区二区 | 免费日本在线 | 亚洲精品在线第一页 | free中国性xxxxhd | 国产一级精品高清一级毛片 | 国产视频xxx| 最新日韩欧美不卡一二三区 | 欧美在线观看a | 亚洲精品午夜久久aaa级久久久 | 欧美一级毛片无遮无挡 | 欧美成人性色区 | 日韩在线不卡一区在线观看 | 国产v片成人影院在线观看 国产v片在线观看 | 手机看片福利久久 | 欧美日韩性视频 | 国产免费久久精品 | 国产国产成人精品久久 | 亚洲国产日韩综合久久精品 | 性一交一乱一伦一色一情 | 日本午夜在线观看 | 在线视频一本 | 国产精品综合一区二区 | 国产亚洲精品久久久久久久久激情 | 欧美另类bbwhd| 在线看欧美成人中文字幕视频 | 日本不卡一区二区三区四区 | 国产午夜精品免费一二区 | 欧美日韩亚洲国产精品 |