SQL,计入多列然后分组

Dav*_*vid 6 sql ms-access group-by count

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

Source data table:

P1  P2  P3
-----------
a   b   
a   a   a
b   c   
a   b   b
b   a
Run Code Online (Sandbox Code Playgroud)

我想要它显示这样的东西:

Desired query output:

     Total
   -------------
a |    6
b |    5
c |    1
Run Code Online (Sandbox Code Playgroud)

Fio*_*ala 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
Run Code Online (Sandbox Code Playgroud)


Joh*_*Woo 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
Run Code Online (Sandbox Code Playgroud)

  • 您已经使用了UNION,它将消除重复. (2认同)