2017-02-22 27 views
1

我对查询很困难,在这个查询中,我需要计算某个值的所有可能出现次数并将其显示出来。想象一下,我有这样SQL查询 - 计算几列中变量的所有出现次数

---------------------------- 
| field1 | field2 | field3 | 
---------------------------- 
| a | a | b | 
---------------------------- 
| c | b | a | 
---------------------------- 

等等,我想我的查询返回的东西像这样的表:

----------------------- 
| value_found | count | 
----------------------- 
| a   | 3 | 
----------------------- 
| b   | 2 | 
----------------------- 
| c   | 1 | 
----------------------- 

我试过一个几乎给我我需要什么,但实在是太长而可能不理想,所以非常感谢你。

+0

这种问题是对症的设计不良 – Strawberry

+0

这是一个令人难以置信的可怕的设计其实,但它不是我做的!哈哈 –

+0

那好吧,那么 – Strawberry

回答

2

您可以使用union allgroup by

select field, count(*) 
from (select field1 as field from t union all 
     select field2 as field from t union all 
     select field3 as field from t 
    ) t 
group by field; 
+0

Jeez,谢谢,就是这样!这几乎是我所拥有的,除了我正在使用常规联合,并且我正在每个内部选择中写入计数... –