首页 > 解决方案 > 根据特定条件返回唯一行

问题描述

在此处输入图像描述

我需要一个查询,它将返回不同的行,但不会返回任何具有重复水果的行,其中行之一是“已批准”。注意:总是最多有两个同名的水果。

例如,理想的结果是:

在此处输入图像描述

到目前为止,我所拥有的只是:

SELECT DISTINCT * FROM Food;

但这显然仍然返回具有水果“Apple”的行之一

标签: mysqlsql

解决方案


您可以对所需的结果集使用一些条件聚合,例如

select fruit, min(status)
from demo
group by fruit
having sum(status = 'Approved') = 0
and sum(status = 'Bought') > 0

或者只是使用select fruit, 'Bought' as status

演示


推荐阅读