2015-01-26 128 views
1

我有一个表有2列(ref1,ref2)引用另一个表。我要寻找一个SELECT查询产生的频率在REF1值或REF2存在,在两列两次计算,如果值是一个总结:GROUP BY A列或B列

SELECT ref1,ref2 from table; 
(100,100), 
(100,101), 
(100,NULL) 

应导致:

(100,4), 
(101,1) 

的我能想到的唯一办法是联盟,但我希望有另一种方式。有任何想法吗 ?

回答

0

union删除重复,所以这是行不通的 - 你需要的union all操作:

SELECT ref, COUNT(*) 
FROM (SELECT ref1 AS ref FROM mytable 
     UNION ALL 
     SELECT ref2 AS ref FROM mytable) t