首页 > 试题广场 >

Mysql中表student_table(id,name,b

[单选题]
Mysql中表student_table(id,name,birth,sex),插入如下记录:
('1003' , '' , '2000-01-01' , '男');
('1004' , '张三' , '2000-08-06' , '男');
('1005' , NULL , '2001-12-01' , '女');
('1006' , '张三' , '2000-08-06' , '女');
('1007' , ‘王五’ , '2001-12-01' , '男');
('1008' , '李四' , NULL, '女');
('1009' , '李四' , NULL, '男');
('1010' , '李四' , '2001-12-01', '女');
执行
select count(t2.birth)  as c1
from (
select * from student_table where sex = '男' ) t1 
inner  join 
(select * from student_table where sex = '女')t2 
on t1.birth = t2.birth and t1.name = t2.name ; 
的结果行数是()?
  • 1
  • 2
  • 3
  • 4
count()函数有两种使用方式:
使用count(*)对表中行的数目进行计数,不管表列中包含的是空值(null)还是非空值;
使用count(column)对特定列中具有值得行进行计数,忽略null值。
(摘自SQL必知必会)
发表于 2022-01-18 11:10:27 回复(2)
('1008' , '李四' , NULL, '女'); ('1009' , '李四' , NULL, '男'); 这一组比较,日期空,count不会计算
发表于 2021-12-13 13:10:14 回复(2)
提问有点歧义,count本身是求结果行数,但是这里是问count之后的结果行数?
发表于 2022-01-15 13:05:34 回复(2)
首先满足这个条件 t1.birth = t2.birth and t1.name = t2.name的记录共有两条分别是
因为COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)而COUNT(*) 函数才返回表中的记录数所以 count(t2.birth)只返回非null数目
发表于 2023-03-08 22:33:52 回复(0)
count函数不统计null,结果只有1行
发表于 2023-01-02 10:29:29 回复(0)
这题首先要求将表分为男女两张表后水平合并,然后列出姓名和出生日期都相同的对象,本来符合的有2组,但是有1组缺少必要信息,所有满足count(id)的只有('1004' , '张三' , '2000-08-06' , '男');和('1006' , '张三' , '2000-08-06' , '女');这一行表,所以答案是1.
发表于 2022-04-23 17:27:54 回复(0)
筛选出来两组('1004' , '张三' , '2000-08-06' , '男')('1006' , '张三' , '2000-08-06' , '女');
('1005' , NULL , '2001-12-01' , '女')('1007' , ‘王五’ , '2001-12-01' , '男');第二组数据是因为要求男女名字一样,所以排除

发表于 2022-04-14 22:49:37 回复(0)
COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入)
发表于 2022-04-04 11:41:58 回复(0)
个人理解:
1.首先进行外连接
2.找出满足t1.birth = t2.birth and t1.name = t2.name的行
3. 排除t1.name=null 或t2.name=null的行
4. 确定答案为1
发表于 2022-03-30 22:28:40 回复(0)
count计算出来只有一个值,所以返回的结果只有一行
发表于 2022-02-18 10:20:19 回复(0)