如何删除mysql查询中的重复项 [英] How to remove duplicates in mysql query

查看:45
本文介绍了如何删除mysql查询中的重复项的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的数据如下:

org_id  org_emp_id  name    day1    day2    day3    day4    day5    day6    day7    day8    day9    day10   day11   day12   day13   day14   day15   day16   day17   day18   day19   day20   day21   day22   day23   day24   day25   day26   day27   day28   day29   day30
'176'   '1' 'New Org NO'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'
'176'   '1' 'New Org NO'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'NA'    'NA'    'NA'    'NA'
'176'   '1' 'New Org NO'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'NA'    'NA'    'NA'
'176'   '1' 'New Org NO'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'NA'    'NA'

我想要这样的结果::

org_id  org_emp_id  name    day1    day2    day3    day4    day5    day6    day7    day8    day9    day10   day11   day12   day13   day14   day15   day16   day17   day18   day19   day20   day21   day22   day23   day24   day25   day26   day27   day28   day29   day30
'176'   '1' 'New Org NO'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'NA'    'NA'    'NA'    'NA'    'NA'    'P' 'P' 'P' 'P' 'NA'

推荐答案

这不是关于删除重复项,因为第一个结果集中的记录都不是另一个记录的重复项.您希望将所有字段的 'P' 值合并为一条记录.您可以使用 group by 和 max() 函数来达到预期的结果:

This is not about removing duplicates, since none of the records in the first resultset is a duplicate of another one. You want to merge the 'P' values for all fields into a single record. You can use group by and max() function to achive the expected outcome:

select org_id,  org_emp_id,  name, max(day1) as day1, ... , max(day30) as day30
from yourtable
group by org_id,  org_emp_id,  name

您需要列出所有 dayN 字段来代替上述查询中的 ....如果 dayN 字段的所有值都是N/A",则 max() 将返回N/A".如果有P"值,则 max() 将返回P",因为字母 P 的字符代码高于 N.

You need to list all dayN fields in place of the ... in the above query. If for a dayN field all values are 'N/A', then max() will return 'N/A'. If there is a 'P' value, then max() will return the 'P', since letter P has higher character code, than N.

这篇关于如何删除mysql查询中的重复项的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆