有一个名为app的mysql数据库表_随手记:SQL易错题记录(牛客网)

1.查询显示雇员的姓名和姓名中是否含有字母A的信息,满足如下条件

如果字符A在姓名的首位,则显示'字符A在首位'

如果字符A在姓名的末位,则显示'字符A在末位'

如果字符A在姓名中不存在,则显示'没有字符A'

其他情况显示'字符A在中间'

select ename, case charindex(‘A‘,ename)

when 1 then ‘字符A在首位‘

when len(ename) then

‘字符A在末位‘

when 0 then ‘没有字符A‘

else ‘字符A在中间‘

end 名称类别 from emp;

2.有一个名为app的MySQL数据库表,其建表语句如下:

CREATE TABLE `app` (

`app_id` int(10) DEFAULT '0',//应用ID

`version_code` int(10) DEFAULT '0',//应用的版本号

`download_count` int(10) DEFAULT '0'//当前版本的下载量

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4

当前表中数据记录如下,一条记录表示某个应用的某个版本的下载量记录:

+--------+--------------+----------------+

| app_id | version_code | download_count |

+--------+--------------+----------------+

| 1 | 10 | 90 |

| 1 | 11 | 100 |

| 1 | 10 | 20 |

| 2 | 15 | 10 |

| 2 | 16 | 15 |

| 2 | 17 | 30 |

| 2 | 16 | 5 |

| 3 | 2 | 50 |

+--------+--------------+----------------+

问: 下面哪个MySQL语句可以查出每个应用中总下载量最大的版本号和次数( )?

select t.app_id, t.version_code, max(t.download_sum)

from

(select app_id, version_code, sum(download_count) as download_sum

from app

group by app_id, version_code

order by download_sum desc) as t

group by t.app_id;

3.查找入职员工时间排名倒数第三的员工所有信息

CREATE TABLE `employees` (

`emp_no` int(11) NOT NULL,

`birth_date` date NOT NULL,

`first_name` varchar(14) NOT NULL,

`last_name` varchar(16) NOT NULL,

`gender` char(1) NOT NULL,

`hire_date` date NOT NULL,

PRIMARY KEY (`emp_no`));

答案1:

select *

from employees

order by hire_date desc

limit 1 offset 2 --limit限制显示的条数,offset表示要跳过的条数

答案2:

SELECT *

FROM employees

WHERE hire_date = (

SELECT DISTINCT hire_date

FROM employees

ORDER BY hire_date DESC -- 倒序

LIMIT 1 OFFSET 2 -- 去掉排名倒数第一第二的时间,取倒数第三

);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值