首页 > 试题广场 >

21年8月份练题总数

[编程题]21年8月份练题总数
  • 热度指数:213732 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
题目: 现在运营想要了解2021年8月份所有练习过题目的总用户数和练习过题目的总次数,请取出相应结果

示例:question_practice_detail
id device_id question_id result date
1 2138 111 wrong 2021-05-03
2 3214 112 wrong
2021-05-09
3 3214 113 wrong
2021-06-15
4 6543 111 right 2021-08-13
5 2315 115 right
2021-08-13
6 2315 116 right
2021-08-14
7 2315 117 wrong
2021-08-15
……



(完整表格数据见下面示例1输入)

根据的示例,你的查询应返回以下结果:
did_cnt question_cnt
3 12
示例1

输入

drop table if exists `user_profile`;
drop table if  exists `question_practice_detail`;
CREATE TABLE `user_profile` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`gender` varchar(14) NOT NULL,
`age` int ,
`university` varchar(32) NOT NULL,
`gpa` float,
`active_days_within_30` int ,
`question_cnt` int ,
`answer_cnt` int 
);
CREATE TABLE `question_practice_detail` (
`id` int NOT NULL,
`device_id` int NOT NULL,
`question_id`int NOT NULL,
`result` varchar(32) NOT NULL,
`date` date NOT NULL
);

INSERT INTO user_profile VALUES(1,2138,'male',21,'北京大学',3.4,7,2,12);
INSERT INTO user_profile VALUES(2,3214,'male',null,'复旦大学',4.0,15,5,25);
INSERT INTO user_profile VALUES(3,6543,'female',20,'北京大学',3.2,12,3,30);
INSERT INTO user_profile VALUES(4,2315,'female',23,'浙江大学',3.6,5,1,2);
INSERT INTO user_profile VALUES(5,5432,'male',25,'山东大学',3.8,20,15,70);
INSERT INTO user_profile VALUES(6,2131,'male',28,'山东大学',3.3,15,7,13);
INSERT INTO user_profile VALUES(7,4321,'male',28,'复旦大学',3.6,9,6,52);
INSERT INTO question_practice_detail VALUES(1,2138,111,'wrong','2021-05-03');
INSERT INTO question_practice_detail VALUES(2,3214,112,'wrong','2021-05-09');
INSERT INTO question_practice_detail VALUES(3,3214,113,'wrong','2021-06-15');
INSERT INTO question_practice_detail VALUES(4,6543,111,'right','2021-08-13');
INSERT INTO question_practice_detail VALUES(5,2315,115,'right','2021-08-13');
INSERT INTO question_practice_detail VALUES(6,2315,116,'right','2021-08-14');
INSERT INTO question_practice_detail VALUES(7,2315,117,'wrong','2021-08-15');
INSERT INTO question_practice_detail VALUES(8,3214,112,'wrong','2021-05-09');
INSERT INTO question_practice_detail VALUES(9,3214,113,'wrong','2021-08-15');
INSERT INTO question_practice_detail VALUES(10,6543,111,'right','2021-08-13');
INSERT INTO question_practice_detail VALUES(11,2315,115,'right','2021-08-13');
INSERT INTO question_practice_detail VALUES(12,2315,116,'right','2021-08-14');
INSERT INTO question_practice_detail VALUES(13,2315,117,'wrong','2021-08-15');
INSERT INTO question_practice_detail VALUES(14,3214,112,'wrong','2021-08-16');
INSERT INTO question_practice_detail VALUES(15,3214,113,'wrong','2021-08-18');
INSERT INTO question_practice_detail VALUES(16,6543,111,'right','2021-08-13');

输出

3|12
头像 webary
发表于 2021-09-02 13:42:17
精华题解 题意明确: 2021年8月份所有练习过题目的总用户数和练习过题目的总次数 问题分解: 限定条件:2021年8月份,匹配date字段即可,匹配方法主要有三种:(1)like语法:date like "2021-08%"(2)year、month函数:year(date)='20 展开全文
头像 牛客题解官
发表于 2025-02-17 15:20:18
精华题解 题目描述 运营团队希望了解2021年8月份所有练习过题目的总用户数和练习过题目的总次数, SQL 查询 -- 统计2021年8月份所有练习过题目的总用户数和练习过题目的总次数 SELECT COUNT(DISTINCT device_id) AS did_cnt, -- 统计不同设备I 展开全文
头像 酸菜鱼土豆大侠
发表于 2022-11-27 17:31:04
【场景】:某月的情况 【分类】:聚合函数、日期函数、字符串函数 分析思路 难点: 1.计算总用户数时要对用户去重 2021年8月可以怎么写 [使用]:month和year [使用]:date_format [使用]:like [使用]:mid [使用]:left [使用]:substring_ 展开全文
头像 牛客101781186号
发表于 2022-01-30 01:42:52
count(distinct device_id) as did_cnt ,COUNT(question_id) FROM question_practice_detail where -- Year(date) ='2021' and month(date)= '8' -- date_forma 展开全文
头像 snowiest
发表于 2021-08-31 21:02:04
SELECT COUNT(DISTINCT device_id) AS did_cnt,COUNT(device_id) AS question_cntFROM question_practice_detailWHERE YEAR(date)=2021 AND MONTH(date)=8
头像 阿莉勒丝黛拉
发表于 2022-03-04 21:37:23
SELECT     COUNT(DISTINCT device_id) did_cnt,     COUNT(*) question_cnt FROM     展开全文
头像 梓林小朋友
发表于 2023-04-24 09:37:51
select count(distinct device_id) as did_cnt, count(question_id) as question_cnt from question_practice_detail where date like "2021-08%"
头像 summer2077
发表于 2022-01-27 11:20:40
between 也可以匹配日期 select count(distinct device_id) as did_cnt, count(question_id) as question_cnt from question_practice_detail where date betw 展开全文
头像 henu2024
发表于 2022-04-03 16:00:32
select count(distinct(device_id)) as did_cnt, count(question_id) as question_cnt from question_practice_detail where year(date) = 2021 and month(date) 展开全文
头像 牛客297995581号
发表于 2022-03-23 10:35:15
select count(distinct device_id) as did_cnt,//总用户数:用户可以登录多次同一台设备 count(question_id) as question_cnt//总次数 from question_practice_detail qpd where year 展开全文
头像 统计小白er
发表于 2022-11-13 14:26:07
-- 想要了解2021年8月份所有练习过题目的总用户数和练习过题目的总次数-- 这里可以看出date有设置条件: 2021-08 -- 先看, 这里没有详细介绍字段, 也不确定是否是需要进行去重处理-- count 函数 展开全文
头像 ROCK丶丶
发表于 2021-12-06 09:56:26
select count(distinct(device_id)) did_cnt, count(question_id) question_cnt from question_practice_detail where Month(date) = '08';