mysql之order by和group by

前言

在使用group by和order by的時(shí)候,通常并不會(huì)出現(xiàn)什么問題,然而有一種情況會(huì)讓人忽視。那就是對group組內(nèi)數(shù)據(jù)進(jìn)行order的時(shí)候。

通常大家在使用group by和order by的時(shí)候,潛意識(shí)里會(huì)覺得如果group分組里有多條記錄,order by會(huì)對組內(nèi)數(shù)據(jù)進(jìn)行排序,然后group的數(shù)據(jù)會(huì)是order得到的第一條數(shù)據(jù)。實(shí)際上,order對于group的組內(nèi)數(shù)據(jù)并不能進(jìn)行排序!

eg:
CREATE TABLE `tb` (
`id`  int(11) NOT NULL ,
`group_id`  int(11) NOT NULL ,
`app_id`  int(11) NOT NULL ,
`name`  varchar(255) NOT NULL ,
PRIMARY KEY (`id`)
);
在表tb中存有不同分組的多個(gè)APPID信息,現(xiàn)在要求查詢每個(gè)分組中最大的那一條APPID的記錄
方案一:select * from tb group by group_id order by app_id desc;
結(jié)果:這種方案實(shí)際上獲取的是物理塊讀取的第一條數(shù)據(jù),并不一定是最大的APPID

方案二:select * from (select * from tb order by group_id DESC,appid DESC) as tmp group by group_id;
結(jié)果:如預(yù)期得到需求的數(shù)據(jù)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn),斷路器,智...
    卡卡羅2017閱讀 136,506評論 19 139
  • 1. Java基礎(chǔ)部分 基礎(chǔ)部分的順序:基本語法,類相關(guān)的語法,內(nèi)部類的語法,繼承相關(guān)的語法,異常的語法,線程的語...
    子非魚_t_閱讀 34,626評論 18 399
  • 《高性能MySQL》&《MySQL技術(shù)內(nèi)幕 InnoDB存儲(chǔ)引擎》筆記 第一章 MySQL架構(gòu)與歷史 MySQL的...
    xiaogmail閱讀 13,095評論 0 39
  • .數(shù)據(jù)庫 數(shù)據(jù)庫的發(fā)展: 文件系統(tǒng)(使用磁盤文件來存儲(chǔ)數(shù)據(jù))=>第一代數(shù)據(jù)庫(出現(xiàn)了網(wǎng)狀模型,層次模型的數(shù)據(jù)庫)=...
    小Q逛逛閱讀 1,069評論 0 2
  • 昨夜、たくさんのお酒を飲んでしまった。その結(jié)果、今日は體の調(diào)子がとても悪くて、気持ちも悪くになった。やっぱり、何よ...
    Seabiscuit_7158閱讀 258評論 0 0

友情鏈接更多精彩內(nèi)容