首页 > 试题广场 >

create table counttest(name ch

[单选题]
create table counttest(name char(1), age char(2));
insert into counttest(name, age)
values('a','14'),
('a','15'),
('a','15'),
('b',NULL),
('b','16'),
('c','17'),
('d',null),
('e','');
select name, count(1),count(*),count(age), count(distinct(age))
from counttest 
group by name;   
查询结果是
  • a 3 3 3 2<br>b 2 1 1 1<br>c 1 1 1 1<br>d 1 1 0 0<br>e 1 1 1 1
  • a 3 3 3 2<br>b 2 1 2 2<br>c 1 1 1 1<br>d 1 1 1 1<br>e 1 1 1 1
  • a 3 3 3 2<br>b 2 1 1 2<br>c 1 1 1 1<br>d 1 1 0 1<br>e 1 0 1 1
  • a 3 3 3 2<br>b 2 2 1 1<br>c 1 1 1 1<br>d 1 1 0 0<br>e 1 1 1 1
count(1)是对name的计数 count(*)是对元组的计数 count(age)是对年龄的计数,但是为null是空值,记为0,为""的依旧记为1 最后一个对不为null,且不同的age进行计数
发表于 2019-11-06 10:28:20 回复(0)
聚合函数都会虑空
发表于 2020-09-09 21:47:40 回复(0)