我有一张包含数十万个类似记录的表,我正在尝试将多个类似的记录合并到一个更简洁的表中。我在下面使用的SQL查询与原始表相比没有给出准确的结果,但我不确定原因。
该表旨在从原始表中提取所有字段,但使用计数总和将每个记录合并到一个唯一记录中,因此计数总和应与原始表中的总和完全对应。
SELECT Date_mday, date_month, date_year, [Message#EventID], aaRequestType,
[Message#SecurityParameters#AccountNumber] ,
[Message#SecurityParameters#LogonUserID] ,
InstitutionPOBoxCountry,
[Message#SecurityParameters#RoleData] ,
Sum(Count) AS SumOfCount
FROM TempImport
GROUP BY Date_mday, date_month, date_year, [Message#EventID], aaRequestType, [Message#SecurityParameters#AccountNumber], [Message#SecurityParameters#LogonUserID], InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData], Count;
我确信这很容易解决,但我尝试了一些不同的方法,我很难过。
我的原始表格如下:
date_mday | date_month | date_year | Message#EventID | aaRequestType | Message#SecurityParameters#AccountNumber | Message#SecurityParameters#LogonUserID | InstitutionPOBoxCountry | Message#SecurityParameters#RoleData | count
-----------|------------|-----------|-----------------|---------------|------------------------------------------|----------------------------------------|-------------------------|-------------------------------------|-------
1 | Jan | 2017 | XML-INPUT | GetData | A1234 | AAA1234 | GB | VALIDATE | 1
1 | Jan | 2017 | XML-INPUT | GetData | A1234 | AAA1234 | GB | VALIDATE | 1
1 | Jan | 2017 | XML-INPUT | GetData | A1234 | AAA1234 | GB | VALIDATE | 1
1 | Jan | 2017 | XML-INPUT | GetData | A1234 | AAA1234 | GB | VALIDATE | 1
统一表格只有一行,但最后一列(SumOfCount)为4。
答案 0 :(得分:0)
count
是您要汇总的字段。如果您将其包含在GROUP BY
中,则每个count
值都会有一个单独的行。
因为您要对值进行求和:
SELECT Date_mday, date_month, date_year, [Message#EventID], aaRequestType,
[Message#SecurityParameters#AccountNumber],[Message#SecurityParameters#LogonUserID] ,
InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData] ,
Sum(Count) AS SumOfCount
FROM TempImport
GROUP BY Date_mday, date_month, date_year, [Message#EventID], aaRequestType, [Message#SecurityParameters#AccountNumber],
[Message#SecurityParameters#LogonUserID], InstitutionPOBoxCountry, [Message#SecurityParameters#RoleData];
您的GROUP BY
应该只包含不属于聚合函数的列。