
我学习的是MySQL,学习写sql语句过程中遇到Group By 和 Union。
大家乐意看这两个链接,写的很好
Group By: www.cnblogs.com/rainman/archive/2013/05/01/3053703.html
Union : http://www.jb51.net/article/48933.htm
博主只是为了加强记忆才写博客的,基本上是盗用
首先我们来看什么是group By。
Group By 就是分组的意思,根据***分组
这是原始表
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAANwAAADYCAIAAAAPqRrAAAAJqklEQVR4nO2aXZajOhCD2f+qsjPfh+GmwX9xQC4jRXqY43GTUqn92RBObymlzbKeoZRSSmn7B+VLUc7FJUNJLOFchpJVwrkMJauEcxlKVgnnmgjlu2A5eP/3qOpngW0AS/0bHP8tryyFaiNrZlLB/mLNSzf9pOwv3nGGAsrXIUtrp7UmWaAcAa6zGyFtTIFycFeVUPZX+nIzwFJlkOrijSzt/WaApapLsxUnRX9BUc0sPinLBT5+ENgDUOXilS7VsPA2ZhTsMNdClgnKjytXTj4fyuPKvRoZ+8J2AlQfwVc3GraNibfvwR8RQbnVjoqMzuqV2DZmFDxus4/MwbNkxSNeCVUrV5M/HMpqwRaUU4+T0vF+qdYSdGCdkW4WlOMByuTZPKQZYKlqkNKitbRATSqYIVgaVZcP28b0k7IaLPtpedkzoXw1OiyX7eNuBHaCLdj6931NC1ZgGxHfvsvxx58+FspX4wvBx10H16qT8n0xfJu9K8+9fXfmj4va2ouoZoClylYzo+2TgM0AS7UQPM5XU8DRnAXlo+RcXMqhtKwn6ARlUpRzcclQEks+l6Hkk3wuQ8kn+VyGkk/yuQwln+RzGUo+yecylHctytdsAaYzamYRrs3c7GEfJEP5bIsA04yzyzOoNgzl0y0CTH8aysh7XAq/fc/2OppCipR1/rD4BkHi23c1cIyjmN19ow58rfHIlbCusHU/urJ/IXiCHfCkbJ0Ug1BiI/ukxFsQ5crWonMfr17T+hSsqxnVO66Rh2WYC+8zZVXZBeVHqhUgLe2DFAhlsJyLS4aSWPK5digt6wk6Qblqc0yVc3HJUBJLPpeh5JN8LkPJJ/lchpJP8rkMJZ/kcxlKPsnnMpQAl+M7thjHGTWzFCMz2GYMJd4i7NcINypTjMyk/zGFt2EoYRY/CCW2mTVQCtzmZLyqa3E8ArNJTSirgWMcZYxQdh34WmNNKFP4d4LgzRYm4EnZOil+BUrJk3LJ4zj8pOzcx6vX6ECZDrtT5gzbzppt9zaFFGkpu6D8SGfmZkv7IC3a7gFyLi4ZSmLJ59qhtKwn6ATlqs0xVc7FJUNJLPlchpJP8rkMJZ/kcxlKPsnnMpR8ks9lKPkknysIyuNbqDDNdszqZy/bwnwvfLysUDZ/beZmY/sgRe08MSjL5YnxhdQvt1M2vjaD6spQYur/IJTYltIqKINv4oayU6F1Ey8t+lCK3L7DuDSUHyuMRBA/KbNBmGNAfXYoL9zQsS0lQwmvTw1lHzLxLzpKz5RlnLCA8GfK7azqNYMzN7vaBynw6AqWc3HJUBJLPtcOpWU9QScoV22OqXIuLhlKYsnnMpR8ks9lKPkkn8tQ8kk+l6Hkk3wuQ8kn+VxBUB7fQoUpxjF7xxbjePPjZYUyxbWZm43tgxS4eAEuwY5/v0ceKMsKGWeXZ1BdGcqnW8wwNZR/lly3uUELxlytnqsH/0cEFW7fYesXfFIS5erA1xqPXAnrClt3yJJn8b6yIMpVrsWFGzqkk3pX8NKfLXkW7ysLolzZWnTu49VrWp+CdTWjesuS7tlr0IUuV9bzdlb1msFP3exqH6TALR4s5+KSoSSWfK4dSst6gk5QrtocU+VcXDKUxJLPZSj5JJ/LUPJJPpeh5JN8LkPJJ/lchpJP8rmCoDy+hQpTjGP2ji3G8ebHywplipGZ+81USy34g4wwxWy2SDuUUQesbeDPL/7oge5GQ0ls9xwoIc2UpfxXQhgjrlyttTgegdmkLJTZIMxRzA54Uo6gZiinOIrZzYDywg0d1UylK2zdIUuexfvKgihXthad+3j1Giko6Z69Bl3ocmU9b2dVrxmcudnVPkiBWzxYzsUlQ0ks+Vw7lJb1BJ2gXLU5psq5uGQoiSWfy1DyST6XoeSTfC5DySf5XIaST/K5DCWf5HMZSoDL8R1bjOOMmlmKjzPVV4w3e9gHyVCCLMJ+jXCjMsW3M9g2DCXMwlCi2giFMvhOZyj7Rcq1ON6as8nqDHZBF0BZDRzjONuFbrN14GuN+9uP9Zky/iEh2JERytaMoeR2ZLwDdBAsZ8afMlFd+ZkS4BIZKk14ptzOKi8Yn7nZ0j5IK86wGDkXlwwlseRzVU5vy1qlE5SrNsdUOReXDCWx5HMZSj7J5zKUfJLPZSj5JJ/LUPJJPpeh5JN8LkMJcDm+Y4txnFEzSzEyg+3HUOItwn6NcKMyxcjMe2wov5ChvFDwKyjLH0Ha8F8JwSy4clXXIqPtONaEsho4xnG2C91m68DXGndmFKAMU7AjI5StmfGTErghDSXehRfKPqP9LzqQfrI6fqYEuESGShOeKbezygtaM8d5SEv7IK04w2LkXFwylMSSz1U5vS1rlU5QrtocU+VcXDKUxJLPZSj5JJ/LUPJJPpeh5JN8LkPJJ/lchpJP8rkMJcDl+I4txnFGzSzFtZmbPeyDZChBFmG/RrhRmeLaDKoNQwmz+DUo4S2tgTL4Tufbd79I2fYfFsNQct++q4FjHGMsiHJ14GuNNU/K+IcEQzleoXVkJkNJ56gBZR8y8S86fqZEOUKKvNveziovGJ+52dI+SCvOsBg5F5cMJbHkc1VOb8tapROUqzbHVDkXlwwlseRzGUo+yecylHySz2Uo+SSfy1DyST6XoeSTfC5DedeifM0WYDqjZhbh2szNHvZBMpQIi8jfIdwr4+zyDKoNQ2mv34ZS4Da31ghoV12L6sH/EUHi23f8nU7PCGXXga81HrkS1hW27ohlmAzleIXO4deBEhvcUFIaoew+3n+/faaEyM+UlEZAu+NabGeVF1Rnqp+62dI+SCvOsBg5F5cMJbHkc1VOb8tapROUqzbHVDkXlwwlseRzGUo+yecylHySz2Uo+SSfy1DyST6XoeSTfC5Daa+95vFN4eAMthlDCTaihjIjb3AmoYMbSrDLb0KJbWYNlNXzf6pdmAsdlP178a9AWQ0c4xhgwQVlB77WWBzKMIXlorsDlBU6X18MJasjl9fHb9C/AmUSfaZ8e3HlOq7FdlZ5wfjMzZb2QVpxhsXIubhkKIkln6tyelvWKp2gXLU5psq5uGQoiSWfy1DyST6XoeSTfC5DySf5XIaST/K5DCWf5HMZSmT9mN/kDJfsTeHgDLYZQwkoXi4PKZQZeYMzCR3ZUE6p/2tQYptZA2XYWfK2C65PBGV1LY5HYDapCWU1cIxjWH0WKDvwtcaaUCb0n9+N2AXXZ4EyFWvR+fqiDKVPynm+lyuUwJUWylCmw+5kWbx+8SxIWDTsSVkqu6D8SGfmZkv7IAVCGSzn4pKhJJZ8rv8AZOBO0gJvrDgAAAAASUVORK5CYII=" alt="" />
select 类别, sum(数量) as 数量之和
from A
group by 类别
执行后
aaarticlea/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJIAAABGCAIAAACotlrgAAAChUlEQVR4nO2ZUZKEIAxEvf+pvBn7YZWTIQkwQoLJdn9MWQrpwAsq41FKOaBwurCdGZV4XMAWT8AWUsAWUsAWUlbY7oD84GNMJPZdmMZgs+uA/vKWXI+tG937HY1WW3sK6Jnt2E6Sp1Zn2smGRRc8PzNeZ4uxifUo5kq7nPq6nEzmWc6nNL9iy+5VDUZjKoYS3rXa+DTRjgtzGG/Mc6giiAP5KYcu+NFUtzzb+Mm92A6ywsRkGiupmvrBBMTxbsPWHkOjeDdiq6z5r9aybdF25yXyU8K2GwBtkfFS3YhNbKxhm19n5zezV2ATByYO8pBqfDz1wWSe5ax155dEiy4zLcI2bFX0Rirvwaa5V91HarFrKoLXQjWC2L5J8uPu1S3YTjJ9tG+35niEQd93rTatauj5qtC6fWeSGWzG06iCsAVWS4zZaDMzzPXYXqXE4zrwdTukLmwloxKPC9jiCdhCCthCCthCCthCCthCCthWxqd7KmtfYHsenMbXjq2sHWx2yXO1Zcbmcw+hdp7xc94kbxfPKnGLn3+1Adu8L1bbmvhpsZXvL0Q+dqbB+ctkwmebvxKPC9ji6YMNCqaSuip3p2AiYAspYAspYAspYAspYAspYAspP2z3ZsNT1o5VfLqnsvbd8Feym0wdK0LasZW1g81t5uDi6fhfsDnfKoFtjVl14OboE7/6y9DUF9jWxwe2NY4+8d0GiGfbVHD+MplwA+CvxOMCtnj6YIOCqaSuyt0pmAjYQgrYQgrYQgrYQgrYQgrYQgrYpoLfO6jC9r52vgXYlkSu5tBhMoFtvUtCbD73EGpnHd+fWcH3tuUumbG5CdjWmDm4+DhqqBJiK7mebeJY3LD9AW9KNe/E3M1WAAAAAElFTkSuQmCC" alt="" />
相信大家看出来了,这是按照类别分组,结果里只剩下abc三个类别,数量之和就是相同类别间的相加。
Union Union all
union:联合的意思,即把两次或多次查询结果合并起来。
要求:两次查询的列数必须一致
推荐:列的类型可以不一样,但推荐查询的每一列,想对应的类型以一
Employees_China:
E_ID E_Name
01 Zhang, Hua
02 Wang, Wei
03 Carter, Thomas
04 Yang, Ming
Employees_USA:
E_ID E_Name
01 Adams, John
02 Bush, George
03 Carter, Thomas
04 Gates, Bill
使用 UNION 命令实例
列出所有在中国和美国的不同的雇员名:
SELECT E_Name FROM Employees_China
UNION
SELECT E_Name FROM Employees_USA
结果:
E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Gates, Bill
使用 UNION ALL 命令实例
UNION ALL 命令和 UNION 命令几乎是等效的,不过 UNION ALL 命令会列出所有的值。
实例:
列出在中国和美国的所有的雇员:
SELECT E_Name FROM Employees_China
UNION ALL
SELECT E_Name FROM Employees_USA
结果
E_Name
Zhang, Hua
Wang, Wei
Carter, Thomas
Yang, Ming
Adams, John
Bush, George
Carter, Thomas
Gates, Bill
888