@juniorG Not a resource really but for most the SQL doubts, use any online SQL query interpreter.
Now, without count.
The only reason behind it that the type of output inner queries give in both cases. in the case of count(*), the inner query returns a scalar quantity, which is not empty but in the second case where it was supposed to return tuples, it returns an empty set.
> also, ALL returns true in the empty set, and ANY returns false, so I thought it’d be applicable here as well?
Yes, sort of. EXISTS with an empty set will select no tuples and NOT EXISTS will select tuples for an empty set.