Just a guess:select count(colunmA) from table where colunmC = 311863 AND ( colunmB in ('A','B','C') OR colunmD IN ('A', 'B') )GROUP BY colunmD -- ORselect count(colunmA) from table where colunmB in ('A','B','C') and colunmC = 311863 UNION ALlselect count(colunmA) from table where colunmD = 'A' and colunmC = 311863 GROUP BY colunmD UNION ALlselect count(colunmA) from table where colunmD = 'B' and colunmC = 311863 GROUP BY colunmD