
以一个例子来解释。首先有这么一张表:
我们执行这个SQL:SELECT o_num,COUNT(f_id) from orderitems GROUP BY o_num;
得到如图:
此SQL是对一个字段进行分组,把所有相同的o_num分为了一组,并且统计每个组f_id的总数。接下来执行另一个SQL:SELECT o_num,f_id,COUNT(f_id) from orderitems GROUP BY o_num,f_id;
可以发现count(f_id)统计的是按f_id分过组后的结果。
注意o_num=30003这个数据,数据库里有两条,且这两条数据的o_num和f_id都一一对应相等,然后再观察上图,
这条数据只显示了一遍,但是count(f_id)值为2,由此可见GROUP BY o_num,f_id的作用体现在这里了,多字段分组是由左至右的,最终按最右列进行的分组统计。简言之,若多字段分组,当这多个字段值全部相等时才能分为一组,不然就全部拎出来。朋友们可以看看上面几个图好好体会一下。
1.创建测试表,
创建表test_group_cols(idnumber,值varchar2(20),remarkvarchar2(20));
2.插入需要测试的数据,
插入集体集体(1,“15”,“rmk1”);
插入集体集体(2,“15”,“rmk1”);
插入group_colstriues(3,25x,rmk2);
插入group_colstriues(3'333',rmk4);
插入group_colstriues(3,'666','rmk3');
插入集体集体(4'35',rmk1');
插入group_colstriues(4.77,rmk1);
3.查询表的所有字段,选择。*,rowidfromuser_tab_colstwheretable_name=upper('test_group_cols')如下图。
4.写SQL,groupbyid字段,selectid,count(*)fromtest_group_colstgroupbyid,如下图。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)