【发布时间】:2019-08-09 10:25:07
【问题描述】:
我有一张类似的桌子
我能否帮助我编写一个查询,该查询将连接 col1、col2 和 col3 并给出如下结果
我花了一个小时试图用我平庸的技能来解决这个问题,并且已经达到了一定程度。
select col1, count(*)
from tableName
group by col1
但我不知道如何加入所有三个列。
【问题讨论】:
标签: sql count multiple-columns
我有一张类似的桌子
我能否帮助我编写一个查询,该查询将连接 col1、col2 和 col3 并给出如下结果
我花了一个小时试图用我平庸的技能来解决这个问题,并且已经达到了一定程度。
select col1, count(*)
from tableName
group by col1
但我不知道如何加入所有三个列。
【问题讨论】:
标签: sql count multiple-columns
试试这个
select
col,
count(*)
from
(select
id,
col1 as col
from
<table_name>
union all
select
id,
col2
from
<table_name>
union all
select
id,
col3
from
<table_name>)
group by
col
【讨论】:
您需要按 3 列并集的 col 进行分组:
select t.col, count(*)
from (
select col1 col from tablename
union all
select col2 from tablename
union all
select col3 from tablename
) t
group by t.col
【讨论】:
您应该使用UNION 将所有列中的值分组到一列。之后,你就可以计算数值了
SELECT
col,
count(*) as cnt
FROM
(SELECT col1 as col FROM table1
UNION ALL
SELECT col2 as col FROM table1
UNION ALL
SELECT col2 as col FROM table1) as t
GROUP BY col
【讨论】: