SQLite:从两列中选择值,就像它们存储在一列中一样

时间:2019-06-24 16:18:37

标签: sqlite

使用SQLite,如何将两列中的值选择到一个结果集中,就像来自一列中一样?我有一个这样的表:

 value_1 | value_2
---------+---------
 a       | a
 b       | b
 c       | c
 a       | d

现在可以了

SELECT value_1, COUNT(value_1) AS count_value_1
FROM some_table
GROUP BY value_1
ORDER BY count_value_1 DESC

我得到这样的东西:

a | 2
b | 1
c | 1

我想做的是还包括第二列中的所有值(就像它们也存储在第一列中一样),以便得到:

a | 3
b | 2
c | 2
d | 1

1 个答案:

答案 0 :(得分:0)

使用UNION ALL:

select t.value, count(*) from (
  select value_1 value from some_table
  union all
  select value_2 from some_table
) t
group by t.value

如果有null个值并且您不希望对它们进行计数,请添加以下条件:

where t.value is not null

group by子句之前。