2015-06-17 7 views
1

У меня есть следующая таблицакак запросить последнюю запись и агрегированные результаты

Имя таблицы: REC

Name | Hits | Month | State  
Joe | 15 | 1  | CA  
Joe | 16 | 2  | CA  
Joe | 12 | 3  | TX 

То, что я хочу, чтобы получить это результат на одной строке с именем, сумма всех хитов , и только самое последнее государство.

Так что мой результат должен быть:

Name | SumHits | RecentState  
Joe | 43  | TX 

вот что я до сих пор:

Этот запрос получает мне имя и сумму хитов:

select Name, sum(Hits) 
from REC 
Group By Name 

Этот запрос меня приближает к тому, что я хочу, но он возвращает мне только хиты последнего месяца (12) вместо того, что я хочу (43)

select a.Name, a.Hits, b.Month, a.State 
from REC as a 
Inner Join (
    select Name, max(Month) as Month 
    from REC 
    Group By Name) as b 
On a.Name = b.Name 
And a.Month = b.Month 
+2

Какие СУБД вы используете? – potashin

ответ

1

Вы можете включить вашу сумму в вашем подзапрос, например так:

select a.Name, b.Total_Hits, b.Month, a.State 
from REC as a 
Inner Join (
    select Name, max(Month) as Month, sum(Hits) as Total_Hits 
    from REC 
    Group By Name) as b 
On a.Name = b.Name 
And a.Month = b.Month 
Смежные вопросы