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

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

系統 2762 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條評論
主站蜘蛛池模板: 国产成人香蕉在线视频fuz | 国产一级淫片a免费播放口欧美 | 99精品一区二区免费视频 | 色综合天天综合给合国产 | 久热伊人| 一区二区三区四区国产 | 亚洲午夜一区二区三区 | 欧美一级人与动毛片免费播放 | 久久综合九色综合精品 | 国产美女拍拍拍在线观看 | 国产精品视频ccav | 欧美精欧美乱码一二三四区 | 大学生久久香蕉国产线看观看 | 在线国产视频一区 | 中文字幕中文字幕中中文 | 欧美爱爱片 | 91在线欧美 | 成人在线第一页 | 五月婷婷在线视频观看 | 久久永久免费视频 | 免费人成在线观看网站品爱网 | 美女很黄很黄免费 | 欧美日韩亚洲另类 | 四虎国产精品永久免费网址 | 日本中文字幕在线播放 | 亚洲综合五月天 | 麻豆久久精品 | 国产精品免费视频播放 | 日产国产精品久久久久久 | 国产一区二区亚洲精品 | 久久精品二区 | 成人午夜精品久久久久久久小说 | 亚洲精品二区中文字幕 | 欧美激情区 | 色涩网站在线观看 | 亚洲一区欧洲一区 | 国产尤物福利视频一区二区 | 国产一区二区三区高清视频 | 久久久影院亚洲精品 | 91亚色| 久久天天躁狠狠躁夜夜躁综合 |