【无标题】

MySQL分组后取每组第一条的方法

使用DISTINCT和GROUP BY

除了使用子查询外,我们还可以通过结合DISTINCT和GROUP BY的方式实现分组后取每组第一条记录。具体的操作步骤如下:

使用GROUP BY子句按照指定字段进行分组。
在SELECT语句中使用DISTINCT关键字,保留每组中的第一条记录。

SELECT DISTINCT group_field, column1, column2, ...
FROM your_table
GROUP BY group_field;

上述代码中,your_table是需要查询的表名,group_field是按照哪个字段进行分组,column1, column2, …是需要查询的字段名。通过GROUP BY子句按照指定字段进行分组,并在SELECT语句中使用DISTINCT关键字,保留每组中的第一条记录。需要注意的是,除了分组字段外,还需要列出其他需要查询的字段。

举例

SELECT
	* 
FROM
	(
	SELECT DISTINCT
		tas.article_id,
		tas.journal_id,
		tasi.if_oa,
		tasi.article_no,
		tasi.doi,
		tasi.title,
		tas.themselve_no,
		tas.release_stage,
		tas.release_status 
	FROM
		t_article_stage tas
		LEFT JOIN t_article_stage_info tasi ON tas.id = tasi.stage_id 
	WHERE
		tas.release_status IN ( 0, 1, 2 ) 
		AND tasi.article_no = 'test2023082401' 
	ORDER BY
		release_stage DESC 
	) t 
GROUP BY
	t.article_id```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值