MySQL初学者可以告别分组聚合查询的困扰了 |
1.鍒嗙粍鏌ヨ鐨勫師鐞嗗浘瀵逛笂杩板師濮嬫暟鎹紝鎸夌収 涓婅堪鍘熺悊鍐欐垚浠g爜锛屽簲璇ユ庝箞鍐欏憿锛?/p> select department_id,avg(salary) from test group by department_id; 鍙互娓呮鍦扮湅鍒帮紝浣跨敤 褰撹嚜鍔ㄥ垎閰嶅畬鎴愬悗锛屼細鏍规嵁浣犳墍鍐欑殑鍒嗙粍鍑芥暟锛岃繘琛岀粍鍐呰繍绠椼?/p> 涔熷氨鏄锛屼綘浣跨敤鐨勬槸 2.group by鍏抽敭瀛楄娉曡瑙?/h2>鏈変簺灏忕櫧鍦ㄥ涔燤ySQL鐨勮繃绋嬩腑锛屽緢澶氶兘鏄湪
鎴戜滑鍐嶆濊冧笅闈㈣繖涓棶棰橈紒 褰揝QL璇彞涓娇鐢ㄤ簡group by鍚庯紝鍦╯elect鍚庨潰涓瀹氭湁涓涓瓧娈典娇鐢ㄤ簡鑱氬悎鍑芥暟(5涓仛鍚堝嚱鏁?銆備絾鏄櫎浜嗚繖涓仛鍚堝嚱鏁帮紝select鍚庨潰杩樺彲浠ユ坊鍔犲叾浠栦粈涔堝瓧娈靛悧锛?/p> 绛旀鑲畾鏄彲浠ョ殑锛佷絾鏄瀛楁鏈変竴瀹氱殑闄愬埗锛屽苟涓嶆槸浠涔堝瓧娈甸兘鍙互銆備篃灏辨槸璇达紝褰揝QL璇彞涓娇鐢ㄤ簡 3.涓涓畝鍗曠殑鍒嗙粍鏌ヨ鐨勬渚?/h2>妗堜緥 锛氭寜鐓ч儴闂ㄧ紪鍙穌eptno鍒嗙粍锛岀粺璁℃瘡涓儴闂ㄧ殑骞冲潎宸ヨ祫銆?/p> select deptno,avg(sal) avgs from emp group by deptno 缁撴灉濡備笅锛?/p> 4.鍒嗙粍鍓嶇瓫閫夊拰鍒嗙粍鍚庣瓫閫?/h2>杩欎釜鐭ヨ瘑鐐瑰氨鏄甯︾潃澶у鐞嗚В涓涓嬶紝浠涔堜娇鐢ㄨ鐢╳here绛涢夛紵浠涔堟椂鍊欒鐢╤aving绛涢夛紵杩欎釜鐭ヨ瘑鐐瑰浜庡涔燤ySQL鐨勫皬鐧芥潵璇达紝涔熸槸涓涓鎵嬬殑浜嬪効銆備笉鐢ㄦ媴蹇冿紝璺熺潃榛勫悓瀛﹀MySQL锛屾病鏈夊涓嶄細鐨勩?/p> 1锛夊師濮嬭〃鍜岀粨鏋滈泦鐨勬蹇?/h3>鍘熷琛ㄦ寚鐨勬槸鏁版嵁搴撲腑鐪熸瀛樺湪鐨勯偅涓〃锛屼娇鐢ㄣ恠elect * from 琛ㄥ悕銆戞煡璇㈠嚭鏉ョ殑灏辨槸鍘熷琛ㄤ俊鎭傜粨鏋滈泦鎸囩殑鏄湪SQL璇彞涓紝娣诲姞鍏跺畠浠讳綍涓涓檺鍒舵潯浠讹紝鏈缁堝睍绀虹粰鎴戜滑琛紝閮芥槸缁撴灉闆嗐傛坊鍔犱笉鍚岀殑闄愬埗鏉′欢锛屾煡璇㈠嚭鏉ョ殑缁撴灉闆嗕篃鏄笉鍚岀殑銆傚師濮嬭〃鍙湁涓涓紝缁撴灉闆嗗嵈鏄悇绉嶅悇鏍风殑銆?/p> 2锛夐粍鍚屽鏀ぇ鎷?/h3>鍙鏄渶姹備腑锛屾秹鍙婂埌鑱氬悎鍑芥暟鍋氭潯浠剁殑鎯呭喌锛屼竴瀹氭槸鍒嗙粍鍚庣殑绛涢夈傝兘鐢ㄥ垎缁勫墠绛涢夌殑锛屽氨浼樺厛鑰冭檻鍒嗙粍鍓嶇殑绛涢夈?鑰冭檻鍒版ц兘闂)
3锛夋渚嬭瑙?/h3>鍘熷鏁版嵁闆嗗涓嬶細 鈶?鍒嗙粍鍓嶇瓫閫?/p> 涔犻涓锛氭煡璇㈠鍚嶄腑鍖呭惈S瀛楃鐨勶紝姣忎釜閮ㄩ棬鐨勫伐璧勪箣鍜屻?/p> 涔犻浜岋細鏌ヨ宸ヨ祫澶т簬2000鐨勶紝涓嶅悓閮ㄩ棬鐨勫钩鍧囧伐璧勩?/p> 鈶?鍒嗙粍鍚庣瓫閫?/p> 涔犻涓锛氭煡璇㈤儴闂ㄥ憳宸ヤ釜鏁板ぇ浜?鐨勯儴闂ㄧ紪鍙峰拰鍛樺伐涓暟銆?/p> 涔犻浜岋細鏌ヨ姣忎釜閮ㄩ棬鏈楂樺伐璧勫ぇ浜?000鐨勯儴闂ㄧ紪鍙峰拰鏈楂樺伐璧勩?/p> 鈶?鍒嗙粍鍓嶇瓫閫夊拰鍒嗙粍鍚庣瓫閫夊悎鐢?/p> 涔犻锛氭煡璇?981骞村叆鑱岀殑锛屼笉鍚岄儴闂ㄩ棿宸ヨ祫鐨勫钩鍧囧煎ぇ浜?000鐨勯儴闂ㄧ紪鍙峰拰骞冲潎鍊笺?/p> 5.鍒嗙粍鏌ヨ(鎸夊嚱鏁板垎缁?涔犻锛氭寜鍛樺伐濮撳悕鐨勯暱搴﹀垎缁勶紝鏌ヨ姣忎竴缁勭殑鍛樺伐涓暟锛岀瓫閫夊憳宸ヤ釜鏁?gt;3鐨勬湁鍝簺锛?/p> select length(ename) len,count(*) counts from emp group by len having counts > 3; 缁撴灉濡備笅锛?/p> 6.鍒嗙粍鏌ヨ(鎸夊涓瓧娈靛垎缁?涔犻锛氭煡璇㈡瘡涓儴闂ㄦ瘡涓伐绉嶇殑鍛樺伐鐨勫钩鍧囧伐璧勩?/p> 7.group by鍜宱rder by锛屼竴瀵硅佹惌妗?/h2>涔犻涓锛氭煡璇㈡瘡涓儴闂ㄧ殑鍛樺伐鐨勫钩鍧囧伐璧勶紝鎸夌収骞冲潎宸ヨ祫闄嶅簭銆?/p> 涔犻浜岋細鏌ヨ姣忎釜閮ㄩ棬鐨勫憳宸ョ殑骞冲潎宸ヨ祫锛屾寜鐓у钩鍧囧伐璧勫崌搴忋?/p> 8.鍒嗙粍鏌ヨ鐨勬荤粨1锛夊垎缁勫嚱鏁板仛鏉′欢锛岃偗瀹氭槸鏀惧湪 2锛夎兘鐢ㄥ垎缁勫墠绛涢夌殑锛屽氨浼樺厛鑰冭檻浣跨敤鍒嗙粍鍓嶇瓫閫夈傦紙 3锛?code>group by瀛愬彞鏀寔鍗曚釜瀛楁鍒嗙粍锛屽涓瓧娈靛垎缁?澶氫釜瀛楁涔嬮棿鐢ㄩ楀彿闅斿紑娌℃湁椤哄簭瑕佹眰)锛岃繕鏀寔鍑芥暟鍒嗙粍(鐢ㄧ殑杈冨皯)銆?/p> 浠ヤ笂灏辨槸MySQL鍒濆鑰呭彲浠ュ憡鍒垎缁勮仛鍚堟煡璇㈢殑鍥版壈浜嗙殑璇︾粏鍐呭锛屾洿澶氬叧浜嶮ySQL鍒嗙粍鑱氬悎鏌ヨ鐨勮祫鏂欒鍏虫敞鑴氭湰涔嬪鍏跺畠鐩稿叧鏂囩珷锛?/p> |