如何在SQL中按特定列和每个日期选择唯一的行?

如何在SQL中按特定列和每个日期选择唯一的行?,sql,mariadb,Sql,Mariadb,我有一个如下所示的数据库表: id | project_id | stat_date | source | medium | campaign | impressions ---------------------------------------------------------------------- 5 | 2312 | 2019-08-30| google | cpc | camp_a | 20 4 | 2312 | 2019-08-

我有一个如下所示的数据库表:

id | project_id | stat_date | source | medium | campaign | impressions
----------------------------------------------------------------------
 5 |       2312 | 2019-08-30| google |   cpc  |  camp_a  |      20
 4 |       2312 | 2019-08-30| google |   cpc  |  camp_a  |      20
 3 |       2312 | 2019-08-30| google | organic|  camp_b  |      12
 2 |       2312 | 2019-08-29| google |   cpc  |  camp_a  |      35
 1 |       2312 | 2019-08-29| google |   cpc  |  camp_c  |      44
...|        ... |        ...|    ... |   ...  |   ...    |      ...
我需要得到的是(没有id,stat_date列)在29和30之间(日期间隔可能不同):

正如您所看到的,我希望消除印象为20的重复行,并在末尾获得“印象”列的总和


那么,我可以使用什么查询来获得这种结果呢?

您似乎在寻找一个简单的聚合查询,其中包含
WHERE
子句中的过滤器:

SELECT
    project_id,
    source,
    medium,
    campaign,
    SUM(DISTINCT impressions) impressions
FROM mytable
WHERE stat_date >= '2019-08-29' AND stat_date <= '2019-08-30'
GROUP BY 
    project_id,
    source,
    medium,
    campaign
在此中,两个查询都返回:

| project_id | source | medium  | campaign | impressions |
| ---------- | ------ | ------- | -------- | ----------- |
| 2312       | google | cpc     | camp_a   | 55          |
| 2312       | google | cpc     | camp_c   | 44          |
| 2312       | google | organic | camp_b   | 12          |

非常感谢你!这正是我需要的:)
SELECT
    project_id,
    source,
    medium,
    campaign,
    SUM(impressions) impressions
FROM (
    SELECT DISTINCT
        stat_date,
        project_id,
        source,
        medium,
        campaign,
        impressions
    FROM mytable 
) x
WHERE stat_date >= '2019-08-29' AND stat_date <= '2019-08-30'
GROUP BY 
    project_id,
    source,
    medium,
    campaign
| project_id | source | medium  | campaign | impressions |
| ---------- | ------ | ------- | -------- | ----------- |
| 2312       | google | cpc     | camp_a   | 55          |
| 2312       | google | cpc     | camp_c   | 44          |
| 2312       | google | organic | camp_b   | 12          |