Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/83.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 - Fatal编程技术网

sql分组。。。事情

sql分组。。。事情,sql,Sql,我有以下数据: ID Country City Type Qty SomeDate SomeDate1 SomeDate2 1 Canada Ontario Type1 1 01/01/2009 02/02/2009 03/03/2009 2 Canada Ontario Type2 1 01/01/2009 02/02/2009 03/03/2009 3 Germany Berlin Type1

我有以下数据:

ID  Country   City    Type   Qty    SomeDate    SomeDate1    SomeDate2
1   Canada    Ontario Type1  1      01/01/2009  02/02/2009   03/03/2009
2   Canada    Ontario Type2  1      01/01/2009  02/02/2009   03/03/2009
3   Germany   Berlin  Type1  1      03/01/2007  02/01/2008   04/03/2006
4   Germany   Berlin  Type1  3      03/01/2007  02/01/2008   04/03/2006
我需要输出为:

ID  Country   City     Qty    SomeDate    SomeDate1    SomeDate2
1   Canada    Ontario  2      01/01/2009  02/02/2009   03/03/2009
3   Germany   Berlin   4      03/01/2007  02/01/2008   04/03/2006
同一城市之间的日期是相同的


那么,怎么做呢?

这很简单。你真的应该考虑学习SQL基础知识。你也需要在GROUPBY子句中选择列表中的所有列。@费兹:这是不正确的。您在正在聚合的GROUP BY子句中不包括列。是的,我应该说选择列表中的所有非聚合列。抱歉…ID和Qty不应包含在GROUP BY子句中,因为您正在这些列上进行聚合。
SELECT
    MIN(ID),
    Country,
    City,
    SUM(Qty),
    SomeDate,
    SomeDate1,
    SomeDate2
FROM
    MyTable
GROUP BY
    Country,
    City,
    SomeDate,
    SomeDate1,
    SomeDate2
SELECT MIN(ID), Country, City, SUM(Qty), MIN(SomeDate), MIN(SomeDate1), MIN(SomeDate2)
FROM myTable
GROUP BY Country, City
SELECT MIN(ID) AS ID, Country, City, SUM(Qty) AS Qty, SomeDate, SomeDate1, SomeDate2
FROM Table 
Group BY Country, City, SomeDate, SomeDate1, SomeDate2
SELECT MIN(ID),
    Country,
    City,
    SUM(Qty) AS Qty,
    MIN(SomeDate) AS SomeDate,
    MIN(SomeDate1) AS SomeDate1,
    MIN(SomeDate2) AS SomeDate2
FROM sourceTable
GROUP BY Country, City;