Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.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
C# 如何合并具有不同WHERE和GROUP BY子句的两个SELECT查询_C#_Sql_Google Bigquery - Fatal编程技术网

C# 如何合并具有不同WHERE和GROUP BY子句的两个SELECT查询

C# 如何合并具有不同WHERE和GROUP BY子句的两个SELECT查询,c#,sql,google-bigquery,C#,Sql,Google Bigquery,我有以下两个问题: SELECT Actor2Code, COUNT(Actor2Code) AS playermentions FROM [events] WHERE Year=" + Date + " AND ( ( (Actor1CountryCode ='" + mainPlayer1 + "') AND (Actor2CountryCode

我有以下两个问题:

SELECT 
    Actor2Code, 
    COUNT(Actor2Code) AS playermentions 
FROM [events] 
WHERE 
    Year=" + Date + " 
    AND 
    (
        (
            (Actor1CountryCode ='" + mainPlayer1 + "') 
            AND 
            (Actor2CountryCode != '" + mainPlayer1 + "')
        ) 
        OR 
        (
            Actor1CountryCode='" + mainPlayer2 + "' 
            AND 
            Actor2CountryCode !='" + mainPlayer2 + "'
        )
    ) 
GROUP BY Actor2Code;


我将结果合并到c中,我有一个参与者列表和另一个提及次数列表。如何将这两个查询合并为一个,这样我就有一个参与者列表,并且没有重复的actorcodes?一些参与者在回答这两个问题时提到的次数不同。我想编写一个查询,合并这两个查询的结果,并给我一个列表,其中包括不同的Actor1代码和Actor2代码以及重复值的提及次数。我需要有提及次数之和。这几乎可以实现,但您必须手动删除重复项

SELECT ActorCode, playermentions FROM

(SELECT 
    Actor2Code as ActorCode, 
    COUNT(Actor2Code) AS playermentions 
FROM [events] 
WHERE 
    Year=" + Date + " 
    AND 
    (
        (
            (Actor1CountryCode ='" + mainPlayer1 + "') 
            AND 
            (Actor2CountryCode != '" + mainPlayer1 + "')
        ) 
        OR 
        (
            Actor1CountryCode='" + mainPlayer2 + "' 
            AND 
            Actor2CountryCode !='" + mainPlayer2 + "'
        )
    ) 
GROUP BY Actor2Code),
(SELECT 
    Actor1Code as ActorCode, 
    COUNT(Actor1Code) AS playermentions 
FROM [events] 
WHERE 
    Year=" + Date + " 
    AND 
    (
        (
            (Actor2CountryCode ='" + mainPlayer1 + "') 
            AND 
            (Actor1CountryCode != '" + mainPlayer1 + "')
        ) 
        OR 
        (
            Actor2CountryCode='" + mainPlayer2 + "' 
            AND 
            Actor1CountryCode !='" + mainPlayer2 + "'
        )
    ) 
GROUP BY Actor1Code);

您是否尝试过>-然后将联合的结果分组到ActorCode上。我最初认为联合可能不起作用,但根据他所寻找的,这是一个SELECT还是这是SQLIt中的一个过程?我相信这不是一个过程,因为我正在阅读Google Big query,一次只能发送一个查询,谢谢您的回复。您的代码产生以下错误:错误:GROUP BY LIST中不存在表达式“ActorCode”。我找不到此列表中的任何文档,但请尝试使用GROUP BY ActorCode而不是GROUP BY Actor2Code。GROUP BY ActorCode已工作,但现在的结果是,好像我已经合并了从两个查询中分别得到的两个数组。合并了ActorCodes和NumberOfReferences。我的问题是,我需要不同的ActorCodes,提及次数应该是重复值的提及次数之和。是吗?也许把它包在外面的一组里?
SELECT ActorCode, playermentions FROM

(SELECT 
    Actor2Code as ActorCode, 
    COUNT(Actor2Code) AS playermentions 
FROM [events] 
WHERE 
    Year=" + Date + " 
    AND 
    (
        (
            (Actor1CountryCode ='" + mainPlayer1 + "') 
            AND 
            (Actor2CountryCode != '" + mainPlayer1 + "')
        ) 
        OR 
        (
            Actor1CountryCode='" + mainPlayer2 + "' 
            AND 
            Actor2CountryCode !='" + mainPlayer2 + "'
        )
    ) 
GROUP BY Actor2Code),
(SELECT 
    Actor1Code as ActorCode, 
    COUNT(Actor1Code) AS playermentions 
FROM [events] 
WHERE 
    Year=" + Date + " 
    AND 
    (
        (
            (Actor2CountryCode ='" + mainPlayer1 + "') 
            AND 
            (Actor1CountryCode != '" + mainPlayer1 + "')
        ) 
        OR 
        (
            Actor2CountryCode='" + mainPlayer2 + "' 
            AND 
            Actor1CountryCode !='" + mainPlayer2 + "'
        )
    ) 
GROUP BY Actor1Code);