一道有意思的数据库题
生活随笔
收集整理的這篇文章主要介紹了
一道有意思的数据库题
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
create table stu
(id char(20) PRIMARY key,score int,cno char(20) not null
);
問:選項(xiàng)中哪幾個(gè)結(jié)果一樣?
A select sum(score)/count(*) from stu;
B select sum(score)/count(1) from stu;
C select avg(score) from stu;
D select sum(score)/count(score) from stu;
E select sum(score)/count(cno) from stu;
答案: A,B,E是一組。C,D是一組。
分析本題
本題主要考察在計(jì)算的過程中忽略不忽略null的問題。
選項(xiàng)A
count(*)統(tǒng)計(jì)所有列,包括有null的列。即,求的是全班成員的平均成績(jī)。
(80+70+40+90)/5=56;
選項(xiàng)B
count(1)統(tǒng)計(jì)所有列,包括有null的列。即,求的是全班成員的平均成績(jī)。
(80+70+40+90)/5=56;
選項(xiàng)C
score列可以為空,avg(score)會(huì)忽略null。即,求的是全班有成績(jī)的學(xué)生的平均成績(jī)。
(80+70+40+90)/4=70;
選項(xiàng)D
score列可以為null,所以count(score)會(huì)忽略null。即,求的是全班有成績(jī)的學(xué)生的平均成績(jī)。
(80+70+40+90)/4=70;
選項(xiàng)E
cno列不可以為null,所以count(cno)統(tǒng)計(jì)的就是全班人數(shù)。即,求的是全班學(xué)生的平均成績(jī)。
(80+70+40+90)/5=56;
總結(jié)
以上是生活随笔為你收集整理的一道有意思的数据库题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库---闭包习题
- 下一篇: 1.2.3 计算机系统的层次结构