当前位置:C++技术网 > 资讯 > SQL常用命令Group By及order by的使用及理解

SQL常用命令Group By及order by的使用及理解

更新时间:2016-05-10 21:26:33浏览次数:1+次

server2008中打开新建查询命令,在查询菜单中,写入下面的代码来创建一个表:
create table MyTable
(
ColA int,
ColB char(20),
ColC int
);
然后,我们在这个表里面插入数据:
insert into MyTable values
(NULL, NULL, NULL),
(NULL, NULL, NULL),
(1,'abc',1),
(1,'def',1),
(1,'ghi',1),
(2,'jkl',1),
(2,'mno',1);
下面,我们利用select语句结合group by命令来做个示例:
select ColA, COUNT(ColB) AS ColbCount,SUM(ColC) as ColCSum from MyTable group by ColA;
下面,我们来看看实现:

对比一下,数据库中的MyTable数据表:

我们可以发现,group by命令其实就是根据该命令指定的行,然后再利用SQL函数
操作该行。比如,SQL函数count指定的是ColB行,那么,我们在统计的是在CloB行中统计CloA行的相同的个数。
不过在这里,相信你也注意到了ColB行包含两行NULL,但是统计的时候,就是0而不是2。当我们对包含NULL的计算的时候,NULL不会被计算在内。
下面,我们看看order by:
select ColA, COUNT(ColB) AS ColbCount,SUM(ColC) as ColCSum from MyTable 
group by ColA order by COUNT(ColB);
运行结果:

该命令就是根据指定的行来排序,默认的是升序排序。当然你也能指定降序排列。
select ColA, COUNT(ColB) AS ColbCount,SUM(ColC) as ColCSum from MyTable 
group by ColA order by COUNT(ColB) desc;--Access中不可以使用“order by 数量之和 desc”

order by不仅能够指定单行排序,还能指定多行排序。在这里,我就不说了。你自己可以查查。