Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何计算sql中的不同标志_Sql_Google Bigquery - Fatal编程技术网

如何计算sql中的不同标志

如何计算sql中的不同标志,sql,google-bigquery,Sql,Google Bigquery,下面是我的数据片段 下面是测试的示例创建代码 CREATE TABLE MYGROUP ( Category,PERSON,Flag ) AS SELECT 'Cat1','A','1' FROM DUAL UNION ALL SELECT 'Cat1','A','0' FROM DUAL UNION ALL SELECT 'Cat1','A','1' FROM DUAL UNION ALL SELECT 'Cat1','B','1' FROM DUAL UNION ALL

下面是我的数据片段 下面是测试的示例创建代码

CREATE TABLE MYGROUP ( Category,PERSON,Flag ) AS
          SELECT 'Cat1','A','1' FROM DUAL
UNION ALL SELECT 'Cat1','A','0' FROM DUAL
UNION ALL SELECT 'Cat1','A','1' FROM DUAL
UNION ALL SELECT 'Cat1','B','1' FROM DUAL
UNION ALL SELECT 'Cat1','B','0' FROM DUAL
UNION ALL SELECT 'Cat2','A','0' FROM DUAL
UNION ALL SELECT 'Cat2','A','0' FROM DUAL
UNION ALL SELECT 'Cat2','A','0' FROM DUAL
UNION ALL SELECT 'Cat2','B','1' FROM DUAL
UNION ALL SELECT 'Cat2','B','1' FROM DUAL
UNION ALL SELECT 'Cat2','B','0' FROM DUAL
UNION ALL SELECT 'Cat3','X','0' FROM DUAL
UNION ALL SELECT 'Cat3','Y','0' FROM DUAL;
期望输出:

类别-旗帜为1的不同人员计数

Cat1 - 2
Cat2 - 1
Cat3 - 0

我需要在大查询中获取我的代码,以获得不同的人员计数。它不应该重复计数。

您可以使用条件聚合

选择
类别
计数(标志=1时的不同情况,然后是人员结束)
来自MYGROUP
按类别分组;

DUAL
是Oracle的一个概念(可能还有其他概念),但对于SQL Server肯定不正确。