題目:給一個表person,五個字段:id,name, sex, tell, birth ,記錄10000個人的姓名,性別,電話,出生日期,要求寫sql語句查詢出來:2020年每個月分別出生了多少人?
面試了幾十個測試工程師,居然沒有幾個人能寫出來?
CREATE TABLE `person` (
? `id` int NOT NULL AUTO_INCREMENT,
? `name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
? `sex` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
? `tel` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT NULL,
? `birth` datetime DEFAULT NULL,
? PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=1283 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC;
sql腳本如下:
select
? ? year(birth) as 出生年份,
? ? month(birth) as 出生月份,
? ? count(1) as '月份出生人數匯總'
from person
where year(birth) = '2020'
group by
? ? year(birth),
? ? month(birth)
order by
? ? 出生年份,
? ? 出生月份
一次批量插入數據:
INSERT INTO demodb.person (name,sex,tel,birth)
VALUES('alice','F','18955555655','2018-2-14 20:30:34'),
? ? ? ('alice','F','18955555655','2018-2-17 20:30:34'),
? ? ? ('alice','F','18955555655','2018-2-14 20:30:34'),
? ? ? ('alice','F','18955555655','2018-2-14 20:30:34'),
? ? ? ('alice','F','18955555655','2018-2-17 20:30:34');