首页 > 解决方案 > SQL 按计数将唯一值分组到单独的列中

问题描述

我有两列,aand b,并且都有分类值。假设数据库看起来像这样,

a    b
a1   b1
a2   b2
a3   b1
......

我想将a唯一值分组并将其计数b到单独的列中,例如,

Value    b1    b2    b3
a1       5     10    3
a2       4     6     7
....

我尝试SELECT a, b, count(b) FROM table GROUP BY a, b并得到了类似的东西:

a1    b1    5
a1    b2    10
....

产生所需输出的 ​​SQL 查询是什么?谢谢。

标签: sqlgoogle-bigquery

解决方案


以下是 BigQuery 标准 SQL

SELECT
  a,
  COUNTIF(b = 'b1') AS b1,
  COUNTIF(b = 'b2') AS b2,
  COUNTIF(b = 'b3') AS b3
FROM t
GROUP BY a
-- ORDER BY a

推荐阅读