优秀的编程知识分享平台

网站首页 > 技术文章 正文

mysql分组取每组前三条记录(mysql分组后取每组前10)

nanyue 2024-08-08 19:03:47 技术文章 10 ℃

1、mysql分组取每组前三条记录

#根据订单号(order_no)分组,每个订单取3个订单明细

SELECT *
FROM (
         SELECT *, ROW_NUMBER() OVER (PARTITION BY order_no ORDER BY create_time) AS row_num
         FROM order_goods_detail
     ) AS subquery
WHERE row_num <= 3;

2、mysql中的group_concat函数介绍

数据库字段:主键值(id)、课程id(course_id)、课程名称(course_name)、学生id(stu_id)、学生名称(stu_name)、学生得分(stu_score)、创建时间(create_time)、更新时间(update_time)

案例:查询每个课程有哪些学生参与

select course_id, group_concat(stu_name) as stu_name from student_course group by course_id;

表数据如下:

course_id  stu_name

1                张三

2                李四

1                王五

执行上述SQL,SQL输出结果如下:

1   张三,王五

2   李四

group_concat函数实际工作中还是比较常见的。

最近发表
标签列表