我有这样的一个表:通过过滤多行选择查询
col | status
----+-------
1 | 0
1 | 1
2 | 1
2 | 2
3 | 1
3 | 0
我想有最大状态值只选择行。但也想忽略状态中是否有0。所以预期的行将如下(我忽略1和3的状态= 0)。
col | status
----+-------
2 | 2
我只能根据max()选取行。但是当我添加另一个子句来过滤零时,它不起作用。
SELECT col, max(status)
FROM my_table
WHERE
(select count(*)
from my_table t1
where t1.col = col
and status = 0) = 0
GROUP BY col;
任何指南都适合我。
呵呵,你一定是在开玩笑!谢谢。一旦我被允许接受,我会接受答案。 –
不会HAVING MIN(状态)> 0更加自我解释? –
@CaiusJard是的,我想到了,但我没有关于不同状态值的信息(如-1,-2)。在这种情况下,SUM()是相当一般和安全的。 – lad2025