首页 > 试题广场 >

查询单日多次下订单的用户信息?

[编程题]查询单日多次下订单的用户信息?
  • 热度指数:18442 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
现有某公司部分订单数据及用户会员等级数据,如下所示:
订单信息表:order_tb(订单id-order_id,用户id-user_id,订单金额-order_price,订单创建时间-order_time)
order_id user_id order_price order_time
101 11 380 2022-09-01 09:00:00
102 12 200 2022-09-01 10:00:00
103 13 260 2022-09-01 12:00:00
104 11 100 2022-09-02 11:00:00
105 12 150 2022-09-02 12:00:00
106 12 1200 2022-09-02 13:00:00
107 11 60 2022-09-03 09:00:00
108 13 380 2022-09-03 09:30:00
会员等级信息表:uservip_tb用户id-user_id,会员等级-vip,积分-point
user_id vip point
10 银卡会员 530
11 银卡会员 1555
12 钻石会员 12000
13 金卡会员 6115
14 普通会员 230
15 银卡会员 810
16 普通会员 330
请查询单日下单多次的用户信息?
要求输出:订单日期,user_id,下单次数,会员等级
注:单日多次下订单指该日同一用户下单次数大于1次,结果按照下单次数降序排序
示例数据结果如下:
order_date user_id order_nums vip
2022-09-02 12 2 钻石会员

结果解释:
user_id为12的用户在9月2日分别下了order_id为105、106的订单,故结果如上。
示例1

输入

drop table if exists  `order_tb` ; 
CREATE TABLE `order_tb` (
`order_id` int(11) NOT NULL,
`user_id` int(11) NOT NULL,
`order_price` int(11) NOT NULL,
`order_time` datetime NOT NULL,
PRIMARY KEY (`order_id`));
INSERT INTO order_tb VALUES(101,11,380,'2022-09-01 09:00:00'); 
INSERT INTO order_tb VALUES(102,12,200,'2022-09-01 10:00:00'); 
INSERT INTO order_tb VALUES(103,13,260,'2022-09-01 12:00:00'); 
INSERT INTO order_tb VALUES(104,11,100,'2022-09-02 11:00:00'); 
INSERT INTO order_tb VALUES(105,12,150,'2022-09-02 12:00:00'); 
INSERT INTO order_tb VALUES(106,12,1200,'2022-09-02 13:00:00'); 
INSERT INTO order_tb VALUES(107,11,60,'2022-09-03 09:00:00'); 
INSERT INTO order_tb VALUES(108,13,380,'2022-09-03 09:30:00'); 

drop table if exists  `uservip_tb` ; 
CREATE TABLE `uservip_tb` (
`user_id` int(11) NOT NULL,
`vip` varchar(16) NOT NULL,
`point` int(11) NOT NULL,
PRIMARY KEY (`user_id`));
INSERT INTO uservip_tb VALUES(10,'银卡会员',530); 
INSERT INTO uservip_tb VALUES(11,'银卡会员',1555); 
INSERT INTO uservip_tb VALUES(12,'钻石会员',12000); 
INSERT INTO uservip_tb VALUES(13,'金卡会员',6115); 
INSERT INTO uservip_tb VALUES(14,'普通会员',230); 
INSERT INTO uservip_tb VALUES(15,'银卡会员',810); 
INSERT INTO uservip_tb VALUES(16,'普通会员',330);

输出

order_date|user_id|order_nums|vip
2022-09-02|12|2|钻石会员
头像 牛客题解官
发表于 2025-02-25 11:12:27
精华题解 这道题目要求我们查询在某一天内下单次数超过一次的用户信息。我们要做的事情如下: 1. 确定总体问题 我们需要找出在某一天下单次数超过1次的用户,并输出他们的订单日期、用户ID和订单次数,按订单次数降序排序。 2. 分析关键问题 提取订单日期:从order_tb中提取订单日期。 计算订单次数:对于每 展开全文
头像 wenzo_
发表于 2025-02-12 15:28:37
SELECT DATE(order_time) AS order_date, o.user_id, COUNT(order_time) AS order_nums, vip FROM order_tb o JOIN uservip_tb u ON o.user_id 展开全文
头像 在思考的六边形战士很想去旅行
发表于 2025-08-01 16:03:05
select date(order_time) as order_date, o.user_id, count(o.order_id) as order_nums, u.vip from order_tb o left join uservip_tb u 展开全文
头像 牛客251468393号
发表于 2025-02-28 19:56:11
select date(a.order_time) as order_date, a.user_id, count(1) as order_nums, b.vip from order_tb a left join uservip_tb b on a.user_id = b.user_id gro 展开全文
头像 夸克__
发表于 2025-10-23 08:37:14
select date(order_time) as order_date, o.user_id, count(order_time) as order_nums, u.vip from order_tb o join uservip_tb u on o.user_id=u.user_id grou 展开全文
头像 Mouse9610
发表于 2025-10-16 10:45:14
select order_date ,user_id ,order_nums ,vip from (select date(order_time) as order_date ,t.user_id ,t1.vip ,count(*) as order_nums from order_tb t jo 展开全文
头像 muchenfeng
发表于 2025-06-15 13:57:27
select t.order_date, t.user_id, t.order_nums, uservip_tb.vip from ( select user_id, date(order_tim 展开全文
头像 准备进厂的芹菜很伟大
发表于 2025-04-11 17:14:46
SELECT DATE(order_time) AS order_date , o.user_id, count(*) AS order_nums , u.vip FROM order_tb AS o JOIN uservip_tb AS u ON o.user_id=u.user_id GRO 展开全文
头像 纯真的茶叶蛋拥抱太阳
发表于 2025-08-19 20:56:25
select date(o.order_time) as order_date, o.user_id, count(o.order_price) as order_nums, u.vip from order_tb o join uservip_tb u using(user_id) group b 展开全文
头像 Aki5
发表于 2025-08-18 10:24:12
select date(order_time) as order_date, ut.user_id, count(*) as order_nums, vip from uservip_tb ut inner join order_tb ot on ut.user_id = ot.user_id 展开全文
头像 呼吸丶zero
发表于 2025-07-10 09:04:59
select date(order_time) as order_date ,user_id ,count(*) as order_nums ,vip from order_tb join uservip_tb using(user_id) group by order_date,user_id h 展开全文