用mysql语句返回某个字段唯一不重复的记录集
发布网友
发布时间:2022-04-26 17:53
我来回答
共2个回答
懂视网
时间:2022-04-13 11:20
现在想从这5条记录中查询所有title不重复的记录
假设现在有如下N条记录 表明叫book
id author title
1 aaa AAA
2 bbb BBB
3 ccc CCC
4 ddd DDD
5 eee AAA
现在想从这5条记录中查询所有title不重复的记录
select distinct title,author from book这样是不可以的 因为distinct只能作用于一个字段
想请教应该怎么写
答案:
代码如下:
select a.* from book a right join (
select max(id) id from book group by title) b on b.id = a.id
where a.id is not null
如果选第一条符合的记录,那么用min(id)就行了
代码如下:
select a.* from book a right join (
select min(id) id from book group by title) b on b.id = a.id
where a.id is not null
热心网友
时间:2022-04-13 08:28
假设一张表中含有 姓名,投递地址,邮编,这三字段。
如果你确定在符合条件的查询结果中,这三个字段的值都是相同的:
select distinct 姓名,投递地址,邮编 from AA where ……
#----------------------另外一种情况-------------------------------
如果你想做的是一种统计工作可以用group by
例如:计算出每个投递段(假设用“邮编”区分)需要投递的邮件数量。
select 邮编,count(姓名) as 投递数量 from AA group by 邮编;
注:在group by 子句中没有出现的字段,在做投影操作时一定要在聚合函数中。