2012-04-02 59 views
0

我有以下数据集如何使用组BY和HAVING一起

id name units release_date 
1 salil 1 2012-04-02 
2 salil 2 2012-03-21 
3 salil 3 2012-04-02 
4 salil 4 2012-03-02 
5 salil 5 2012-04-02 
6 xyz  1 2012-04-01 
7 xyz  2 2012-03-30 
8 xyz  3 2012-03-30 
9 xyz  4 2012-04-01 

我想要一个单元的每个名称最大日期的总和。像follwing

name units  Max(release_date) 
salil 9   2012-04-02 
xyz 5   2012-04-01 

我尝试以下,但它不工作

SELECT name, MAX(release_date) as date, sum(units) as units FROM reports 

GROUP BY name; 
+0

这里 '日期' 是SQL关键字,因此将不会使用它作为字段名称。更改并重试 – Ben 2012-04-02 13:26:55

+0

'artist_name'不在您定义的数据集中。 – RedFilter 2012-04-02 13:27:13

+0

@ ben,@ RedFilter: - 它只是一个错字.....我编辑它虽然 – Salil 2012-04-02 13:34:33

回答

0

尝试以下:

SELECT name, sum(units) as units 
    FROM reports as r 
    LEFT JOIN (select max(date) as maxdate from reports group by name) as mr 
    ON r.date=mr.maxdate 
    WHERE artist_name='Pacer1' GROUP BY name; 
+0

没有这给我只有一个记录我想要所有的名字 – Salil 2012-04-02 13:59:52

+0

我对artist_name ='Pacer1'充满怀疑你为什么在你的帖子中用你的查询吗?可能是由于它给出了单一名称。如果不需要,请将其删除 – 2012-04-02 14:50:58