记一道巨简单,但是我没有答上来的Sql面试题

时间:2021-10-20 17:07:46

前些阵子觉得工作不是太开心,加上工资待遇也一般,就想着出去碰碰运气,面面试。看一看自己目前的水平到底如何,处于一个什么级别。

下面是我在面试过程中被问到的一道简单的SQL面试题

题目是 : 要把大象扔冰箱拢共分几步?

记一道巨简单,但是我没有答上来的Sql面试题

当然这不是面试二人转演员,所以题目也肯定不是这个了。。。

咳咳,下面开始说正经的…


面试题是这样的 :

一个学生表(单表),里面有IDnamescoresex 这4个字段,请用2列表示该班级本次考试所有的及格人数之和不及格人数之和

由于当时比较紧张( PS : 其实是我数据库学的太垃圾 ),我的脑子一片浆糊,于是乎我就没答上来(不要笑我),于是乎我也就没通过面试。

数据库结构如下:

ID NAME SEX SCORE
1 小明 25
2 小红 99
3 生番 59
4 小强 58
5 二丫 48
6 生子 74
7 劲仔 97
8 小马 88

现将我目前能够想到的三种Sql写法记录一下:

1、利用SUM()函数进行数字累加

SELECT SUM(CASE WHEN score >= 60 THEN 1 ELSE 0 END) AS pass , SUM(CASE WHEN score < 60 THEN 1 ELSE 0 END) AS fail FROM student

2、利用IF()函数进行分数判断并累加

SELECT SUM(if(score >= 60,1,0)) AS pass , SUM(if(score < 60,1,0) AS fail FROM student

3、这是最笨的方法,使用两个子查询的方式进行COUNT()统计

SELECT (SELECT COUNT() FROM student WHERE score >= 60) AS pass , (SELECT COUNT() FROM student WHERE score < 60) AS pass

行了,这道渣的要命的题就先记录到这吧,欢迎补充!!!