mysql 查询语句面试题集合(不定期更新!!!)

1.#用一条SQL语句查询出平均薪资大于5000的部门中最高和最低薪资;

mysql 查询语句面试题集合(不定期更新!!!)_第1张图片

 

select dept,MAX(salary),MIN(salary)  from study  GROUP BY dept    HAVING avg(salary)>5000

2.mysql去除重复保留最大ID

mysql 查询语句面试题集合(不定期更新!!!)_第2张图片

 #去重保留最大ID
DELETE FROM  test  WHERE id 
 in (
select y.id from (
 
	select b.id 
		from test t 
		join  
			(select name,count(*) as cc,min(id) as id 
					from test  
					GROUP BY name 
					HAVING cc >1
			) b 
		on t.id = b.id
							
					) y
 
) ;
 
 

 

3.根据日期查年龄

mysql 查询语句面试题集合(不定期更新!!!)_第3张图片

select name,DATE_FORMAT(time,"%Y年%c月%d日") as "出生" from test ;
#DATE_FORMAT 格式化日期
select name,time, FLOOR(datediff( NOW(),time)/365) as  age from test ;
#  DATEDIFF(d1,d2)	    计算日期 d1->d2 之间相隔的天数
# FLOOR 向下去整
# SELECT ROUND('123.456') 四舍五入
# CEILING(X) 表示向上取整,只返回值X的整数部分,小数部分舍弃


1.日期转时间戳

select UNIX_TIMESTAMP('2018-12-25 12:25:00');
结果:1545711900


2.时间戳转日期:FROM_UNIXTIME(unix_timestamp) --unix_timestamp为时间戳

select FROM_UNIXTIME(1545711900);
结果:2018-12-25 12:25:00


3.时间戳转日期,自定义返回日期格式:FROM_UNIXTIME(unix_timestamp,format) -- format请参考后面的截图

select FROM_UNIXTIME(1545711900,'%Y-%m-%d %T');
-- 结果:2018-12-25 12:25:00

select DATE_FORMAT(NOW(), '%Y-%m-%d %T');
结果:2018-12-25 12:25:00
TIMESTAMPDIFF函数,有参数设置,可以精确到天(DAY)、小时(HOUR),分钟(MINUTE)和秒(SECOND),使用起来比datediff函数更加灵活。对于比较的两个时间,时间小的放在前面,时间大的放在后面。

--相差1天
select TIMESTAMPDIFF(DAY, '2018-03-20 23:59:00', '2015-03-22 00:00:00');
--相差49小时
select TIMESTAMPDIFF(HOUR, '2018-03-20 09:00:00', '2018-03-22 10:00:00');
--相差2940分钟
select TIMESTAMPDIFF(MINUTE, '2018-03-20 09:00:00', '2018-03-22 10:00:00');

--相差176400秒

 

 

 

4.有一张表,3个字段,ID、姓名、生日,此表有1000万行数据,如表一所示:请问如何统计分析出所有年龄的
具体人数数据,如表二所示。要求计算速度要快,5秒钟内要完成数据的计算。

å¨è¿éæå¥å¾çæè¿°

  • 模拟生成千万条数据,下载地址,分享码:6xry

mysql 查询语句面试题集合(不定期更新!!!)_第4张图片

mysql 查询语句面试题集合(不定期更新!!!)_第5张图片

#   1
 SELECT
	TIMESTAMPDIFF(YEAR, birth, CURDATE()) as 年龄,
	COUNT(*) as 人数
FROM
	employee
GROUP BY
年龄

#     2
select floor((DATEDIFF(NOW(),birth))/365) as '年龄',count(*) as '人数' from employee where id < 1000 GROUP by `name`;

 

你可能感兴趣的:(mysql,mysql函数)