SQL:选择没有重复数据的所有字段

时间:2017-05-10 05:57:03

标签: mysql sql

我有一个包含字段'code'=>的表格'002'重复数据。

 Review.create({
            title : req.body.title,
            description : req.body.description,
            rating: req.body.rating,
            done : false     //what does it mean???
        }, function(err, review) {
            if (err)
                res.send(err);

我想要做的就是删除重复数据并选择更高的值。结果是这样的。

---------------------------
| # | code | name | value |
----------------------------
| 1 | 001  |  A   |   2   |
| 2 | 002  |  B   |   4   |
| 3 | 002  |  B   |   6   |
| 4 | 003  |  C   |   3   |
| 5 | 004  |  D   |   1   |
---------------------------

我尝试使用DISTINCT进行查询,但只显示单个字段。我真的没有想法显示没有重复数据的所有字段。

有人帮我解决这个问题。

非常感谢你。

1 个答案:

答案 0 :(得分:0)

此查询将为您提供值为最大值的精确记录(代码+名称)组合

Select a.* 
from
your_table_name a
inner join
(
Select code, max(value) as max_val
from your_table_name
group by code
) b
on a.code=b.code and a.value=b.max_val

如果您有任何问题,请告诉我