sql - SQL 按计数将唯一值分组到单独的列中
问题描述
我有两列,a
and 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 查询是什么?谢谢。
解决方案
以下是 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
推荐阅读
- react-native - 如何更改 expo-av 中的视频显示方向?
- python - 在 Thonny IDE 中注释代码的键盘快捷键
- javascript - 端点正在工作!但是在响应和数据数组中是空的(ReactJs)也在邮递员中工作正常
- php - PHP按位将数据库中的值与数组进行比较
- r - 在 Jupyter 中更改 R 的版本
- python - Pandas columnwise merge rows which satisfy condition
- typescript - 我应该将什么类类型传递给 Pulumi 参数以使其工作?
- python - 我正在尝试使用 python 获取笔记本电脑的电池电量状态,但在获取实时更新的电池状态值时遇到问题
- javascript - 无法更新 Apexcharts 组件值
- angular - 是否可以在根 AppState 中与子状态一起拥有属性?