一道有意思的数据库题
生活随笔
收集整理的這篇文章主要介紹了
一道有意思的数据库题
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
create table stu
(id char(20) PRIMARY key,score int,cno char(20) not null
);
問:選項中哪幾個結果一樣?
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是一組。
分析本題
本題主要考察在計算的過程中忽略不忽略null的問題。
選項A
count(*)統計所有列,包括有null的列。即,求的是全班成員的平均成績。
(80+70+40+90)/5=56;
選項B
count(1)統計所有列,包括有null的列。即,求的是全班成員的平均成績。
(80+70+40+90)/5=56;
選項C
score列可以為空,avg(score)會忽略null。即,求的是全班有成績的學生的平均成績。
(80+70+40+90)/4=70;
選項D
score列可以為null,所以count(score)會忽略null。即,求的是全班有成績的學生的平均成績。
(80+70+40+90)/4=70;
選項E
cno列不可以為null,所以count(cno)統計的就是全班人數。即,求的是全班學生的平均成績。
(80+70+40+90)/5=56;
總結
以上是生活随笔為你收集整理的一道有意思的数据库题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据库---闭包习题
- 下一篇: linux cmake编译源码,linu