【问题标题】:SQLite: Selecting values from two columns as if they were stored in one columnSQLite:从两列中选择值,就好像它们存储在一列中一样
【发布时间】:2019-06-24 16:18:37
【问题描述】:

使用 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

【问题讨论】:

    标签: sqlite


    【解决方案1】:

    使用 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 子句之前。

    【讨论】:

    • 就是这样 :-) 非常感谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-29
    • 2021-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-02-27
    • 1970-01-01
    相关资源
    最近更新 更多