亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

【mysql】關于子查詢的一個例子

系統 2418 0
假設表my_tbl包含三個字段a,b,c;現在需要查詢表中列a的每個不同值下的列b為最小值的記錄量。

比如表記錄為:
a ?b ?c
1 ?3 ?'cd'
2 ?3 ?'nhd'
1 ?5 ?'bg'
2 ?6 ?'cds'
1 ?7 ?'kiy'
3 ?7 ?'vsd'
3 ?8 ?'ndf'

希望得到結果為:
a ?b ?c
1 ?3 ?'cd'
2 ?3 ?'nhd'
3 ?7 ?'vsd'

(1)
其中一個做法:先查出每個a值下的b最小值,然后根據這些最小值去查詢符合要求的所有記錄。
查詢符合最小b值的sql寫法如下:
select A.* from my_tbl as A where A.b=(select min(b) from my_tbl as B where B.a=A.a);

由于是嵌套查詢和取交集,80萬條記錄情況下竟然用一個小時也沒把中間結果算出來(我真懷疑是自己哪里寫錯了);后面求記錄量就免談了。

(2)
上面的方法是個災難, 只能棄用了。
具體邏輯為:先按列a,b分組,然后選擇每組中列b值最小的記錄,生成結果集。
sql語句寫法如下:
select? a,b,c,count(a)? from (select a,b,c from my_tbl group by a,b) as A group by a;

執行查詢后,時間竟只用了1.1秒。


再一次證明,sql的查詢策略的不同能直接導致性能上的巨大差異。

?

【mysql】關于子查詢的一個例子


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 呦系列视频一区二区三区 | 99视频免费在线观看 | 97av在线视频 | 国产欧美日本在线观看 | 97精品国产高清在线看入口 | 91福利视频合集 | 深夜福利国产 | 午夜精品亚洲 | 久久精品国产只有精品6 | 夜夜骑狠狠干 | 大乳妇女bd视频在线观看 | 欧美不卡一区 | 免费v片在线观看无遮挡 | 亚洲国产精品免费 | 亚洲久久在线 | 香蕉免费一区二区三区在线观看 | 国产99久久九九精品免费 | 在线一区播放 | 婷婷色中文 | 久久久久久久尹人综合网亚洲 | 天天拍天天操 | 欧美人在线一区二区三区 | 日日lu | 久久久精品视频在线观看 | 人人干人人爱 | 久久精品在线播放 | 99久久精品免费视频 | 色综合桃花网 | 国产精品视频一区麻豆 | 热er99久久6国产精品免费 | 五月天久久婷婷 | 欧美毛片性视频区 | 奇米影音777 | 全部在线播放免费毛片 | 久久91精品久久久久久水蜜桃 | 台湾成人性视频免费播放 | 日本性网址 | www.亚洲成人.com | 超级97碰碰碰碰久久久久最新 | 久久黄色小视频 | 雅虎日本免费一区二区三区 |