select a,b,count(1) fom test group by a,b. 这里的count(1)帮忙详细解释一下,谢谢 select a,b,count(1) fom test group by a,b. 这里的count(1)帮忙详细解释一下,谢谢帮帮忙,不明白为什么会计算出重复的行数! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果A,B都不是空,等同于select a , b , count(*) fom test group by a , b count(1)和group by放在一起,用来计数select各列组合的重复记录数:SQL> select * from test1; 1 2 3 4 1 2 3 4 2 3 4 5 2 3 4 6 6 2 3 7 1 7 7 1 4 5 5 8 1 5 5 9 2 7 7 0 9 3 4 9 0 2 6 7已选择11行。SQL> select id1,id2,id3,id4,count(1) from test1 group by id1,id2,id3,id4; 2 3 4 6 1 6 2 3 7 1 2 7 7 0 1 9 3 4 9 1 1 7 7 1 1 0 2 6 7 1 1 2 3 4 2 4 5 5 8 1 1 5 5 9 1 2 3 4 5 1已选择10行。 1* select id1,id2,id3,count(1) from test1 group by id1,id2,id3SQL> / 2 3 4 2 9 3 4 1 0 2 6 1 1 7 7 1 4 5 5 1 1 2 3 2 6 2 3 1 2 7 7 1 1 5 5 1已选择9行。 我测试count(*),count(1),count(主键),结果是一样的,效率也差不多。 我测试了下:count(1),count(*),count(8),count(100),没什么区别 SQL> select * from t_c; ID NAME EMAIL---------- -------- -------- 1 phenix note1 2 phenix note1 3 phenix note1 4 5SQL> select name, email,count(100) from t_c group by name,email;NAME EMAIL COUNT(100)-------- -------- ---------- 2phenix note1 3SQL> select name, email,count(8) from t_c group by name,email;NAME EMAIL COUNT(8)-------- -------- ---------- 2phenix note1 3SQL> select name, email,count(*) from t_c group by name,email;NAME EMAIL COUNT(*)-------- -------- ---------- 2phenix note1 3结果一样。 不考虑空值影响的时候,count(*)最普遍,也是效率最高的。count(pk)最保险,不过写着麻烦。 oracle 基线是什么啊 关于使用执行计划进行sql调优的问题 求高效分页语句 数据库链接测试 sql 转换 RMAN-01008 从一个表提取条件更新另一个表的所有数据 这个语句怎么写? 急求:用bat批处理文件创建触发器出现错误 新人提问:简单的sql查询 问一个表中某个字段的排序问题 求助一个简单的pl/sql语句,报错:内存不够。
1 2 3 4
1 2 3 4
2 3 4 5
2 3 4 6
6 2 3 7
1 7 7 1
4 5 5 8
1 5 5 9
2 7 7 0
9 3 4 9
0 2 6 7已选择11行。SQL> select id1,id2,id3,id4,count(1) from test1 group by id1,id2,id3,id4;
2 3 4 6 1
6 2 3 7 1
2 7 7 0 1
9 3 4 9 1
1 7 7 1 1
0 2 6 7 1
1 2 3 4 2
4 5 5 8 1
1 5 5 9 1
2 3 4 5 1已选择10行。 1* select id1,id2,id3,count(1) from test1 group by id1,id2,id3
SQL> /
2 3 4 2
9 3 4 1
0 2 6 1
1 7 7 1
4 5 5 1
1 2 3 2
6 2 3 1
2 7 7 1
1 5 5 1已选择9行。
我测试count(*),count(1),count(主键),结果是一样的,效率也差不多。
count(1),count(*),count(8),count(100),没什么区别
SQL> select * from t_c; ID NAME EMAIL
---------- -------- --------
1 phenix note1
2 phenix note1
3 phenix note1
4
5
SQL> select name, email,count(100) from t_c group by name,email;NAME EMAIL COUNT(100)
-------- -------- ----------
2
phenix note1 3
SQL> select name, email,count(8) from t_c group by name,email;NAME EMAIL COUNT(8)
-------- -------- ----------
2
phenix note1 3
SQL> select name, email,count(*) from t_c group by name,email;NAME EMAIL COUNT(*)
-------- -------- ----------
2
phenix note1 3结果一样。
count(pk)最保险,不过写着麻烦。