3

我正在使用 Google 的 Big Query 服务进行一些数据处理……我的数据库如下所示:

value
-----

'a'
'b'
'a'
'a'
'a'
'b'

我想编写一个查询来计算各种值的出现。

例子:

Count('a')   Count('b')
----------   ----------
4             3

我通常会使用 Case 来解决这个问题;但 BQ 不支持 Case。

有人有想法么?

谢谢!

4

1 回答 1

2

我建议的第一件事是group by

select value, count(*)
from t
group by value

但是您似乎想要一行中的值。根据这个文档,它确实支持case。如果您愿意,可以使用if

select sum(if(value = 'A', 1, 0)) as A, sum(if(value = 'B', 1, 0)) as B
from t
于 2013-06-05T01:34:13.510 回答