案例:我在BQ中有Sales表,而item_num列包含值1,-1和0.我想计算每个值有多少个案例.
尝试下面的一个简单的查询,但计数返回每个案件完全相同的数字..我缺少什么?
SELECT
count(if(item_num > 0,1, 0)) as buysplus,
count(if(item_num < 0,1, 0)) as buysminus,
count(if(item_num = 0,1, 0)) as buyszero
from MyShop.Sales
Run Code Online (Sandbox Code Playgroud)
谢谢
Mik*_*ant 17
SELECT
SUM(IF(item_num > 0, 1, 0)) AS buysplus,
SUM(IF(item_num < 0, 1, 0)) AS buysminus,
SUM(IF(item_num = 0, 1, 0)) AS buyszero
FROM MyShop.Sales
Run Code Online (Sandbox Code Playgroud)
甚至更简洁的版本:
SELECT
SUM(item_num > 0) AS buysplus,
SUM(item_num < 0) AS buysminus,
SUM(item_num = 0) AS buyszero
FROM MyShop.Sales
Run Code Online (Sandbox Code Playgroud)
这将给出如下结果
buysplus buysminus buyszero
4 2 3
Run Code Online (Sandbox Code Playgroud)
另一种选择是它的转置版本
SELECT
item_num AS buys,
COUNT(1) AS volume
FROM MyShop.Sales
GROUP BY 1
Run Code Online (Sandbox Code Playgroud)
结果如下
buys volume
0 3
1 4
-1 2
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
14540 次 |
| 最近记录: |