这是我的数据,我想显示所有包含资产> 10的名称,但仍然显示所有< 10的资产。
id name assets
1 'Mira' 10
2 'Mira' 9
3 'Maulana' 10
4 'Maulana' 5
5 'Fifi' 4
6 'Fifi' 6目标
id name assets
1 'Mira' 10
2 'Mira' 9
3 'Maulana' 10
4 'Maulana' 5发布于 2020-02-11 07:22:14
一种方法是使用EXISTS子句检查每个名称是否存在资产>10的记录:
SELECT id, name, assets
FROM yourTable t1
WHERE EXISTS (SELECT 1 FROM yourTable t2 WHERE t2.name = t1.name AND t2.assets > 10);另一种选择是使用聚合:
SELECT t1.id, t1.name, t1.assets
FROM yourTable t1
INNER JOIN
(
SELECT name
FROM yourTable
GROUP BY name
HAVING SUM(assets > 10) > 0
) t2
ON t1.name = t2.name;发布于 2020-02-11 07:21:58
使用存在
select t1.* from table t1
where exists ( select 1 from table t2 where t1.name=t2.name and t2.assets>10)注意:,在我看来,您需要>=10,但是您的描述不像这样,所以我使用了>10
https://stackoverflow.com/questions/60163769
复制相似问题