GROUP BY A列或B列
问题描述:
我有一个表有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)
的我能想到的唯一办法是联盟,但我希望有另一种方式。有任何想法吗 ?
答
union
删除重复,所以这是行不通的 - 你需要的union all
操作:
SELECT ref, COUNT(*)
FROM (SELECT ref1 AS ref FROM mytable
UNION ALL
SELECT ref2 AS ref FROM mytable) t