关于面试中的mysql试题1

1、按时间列出每天输赢的量

---->

SELECT W_Time,COUNT(CASE WHEN WoR='赢' THEN 1 END) AS 赢, COUNT(CASE WHEN WoR='输' THEN 1 END) AS 输
FROM WinOrGohome GROUP BY W_time

 

2、求某个时间段内彩票开奖号码次数最多的数字  

--->

SELECT b.n1 FROM(
	SELECT COUNT(a.n1) AS numCount, a.n1 AS n1 FROM(
		SELECT n1 FROM test_t3 UNION ALL
		SELECT n2 FROM test_t3 UNION ALL
		SELECT n3 FROM test_t3 UNION ALL
		SELECT n4 FROM test_t3 UNION ALL
		SELECT n5 FROM test_t3 ) AS a
		GROUP BY a.n1 ORDER BY numCount DESC
	) AS b
WHERE b.numCount=(
	SELECT MAX(b.numCount) FROM(
		SELECT COUNT(a.n1) AS numCount, a.n1 AS n1 FROM(
			SELECT n1 FROM test_t3 UNION ALL
			SELECT n2 FROM test_t3 UNION ALL
			SELECT n3 FROM test_t3 UNION ALL
			SELECT n4 FROM test_t3 UNION ALL
			SELECT n5 FROM test_t3 ) AS a
		GROUP BY a.n1 ORDER BY numCount DESC
	) AS b
)

  

3、计算博物馆最长连续闭馆时间

--->

SELECT  MAX(a.dataOpen-b.dataOpen-1) AS result FROM
	(SELECT (@arow:=@arow+1) AS rownum, dataOpen FROM test_t1, (SELECT @arow:=0) AS table1 ) AS a,
	(SELECT (@brow:=@brow+1) AS rownum, dataOpen FROM test_t1, (SELECT @brow:=1) AS table1 ) AS b
WHERE a.rownum=b.rownum

  

4、将成绩分数转化为优秀良好及格等

 --->

SELECT C_Name,(CASE WHEN 语文>=90 THEN '优秀' WHEN 语文<=60 THEN '不及格' ELSE '良好' END) AS 语文,
	(CASE WHEN 数学>=90 THEN '优秀' WHEN 数学<=60 THEN '不及格' ELSE '良好' END) AS 数学,
	(CASE WHEN 英语>=90 THEN '优秀' WHEN 英语<=60 THEN '不及格' ELSE '良好' END) AS 英语
FROM score2

  

 

posted on 2019-07-21 15:05  西八没天台  阅读(253)  评论(0编辑  收藏  举报