SQL,计入多列然后分组

时间:2012-09-10 14:51:46

标签: sql ms-access count group-by

我正在尝试计算多个列,然后分组总计,其中相同的数据出现在任何列中

Source data table:

P1  P2  P3
-----------
a   b   
a   a   a
b   c   
a   b   b
b   a

我希望它显示如下:

Desired query output:

     Total
   -------------
a |    6
b |    5
c |    1

2 个答案:

答案 0 :(得分:7)

您可以使用联合查询

SELECT x.f1,Count(x.f1) FROM
(SELECT p1 As F1 FROM table
 UNION ALL
 SELECT p2 As F1 FROM table
 UNION ALL
 SELECT p3 As F1 FROM table) x
GROUP BY x.f1

答案 1 :(得分:5)

您可以union all子查询中的记录和外部查询count每个值。

SELECT b.a, COUNT(b.a)
FROM
    (
        SELECT P1 a
        FROM tableName
        UNION ALL
        SELECT P2 a
        FROM tableName
        UNION ALL
        SELECT P3 a
        FROM tableName
    ) b
GROUP BY b.a