2014-10-06 4 views
0

турнирной таблицеMySQL Объединение двух команд Select - Sum и Группа По

**Season Owner Week Points Comment** 
2013  A  1  5  Excellent 
2013  A  2  9  Bad 
2013  B  1  4  Ok 
2013  B  2  5  Good 

Я пытаюсь получить следующий результат (ниже) из таблицы (выше), используя Mysql запрос. Я хочу показать комментарий последней недели и сумму баллов.

Season Owner Points Comment 
2013  A  14  Bad 
2013  B  9  Good 

Следующий (ниже) получает правильную группировку и итог, но комментарий не с последней недели. Идеи?

Select Owner, sum(Points), Comment FROM Standings WHERE Season=2014 GROUP BY Owner 

ответ

0

Я хотел бы использовать метод substring_index()/group_concat():

Select Owner, sum(Points), 
     substring_index(group_concat(Comment order by week desc), ',', 1) as LastComment 
FROM Standings 
WHERE Season = 2014 
GROUP BY Owner ; 
+0

Отлично! Именно то, что мне нужно. – JD7

1

Похож на корпус для старого CONCAT-MAX-SUBSTR трюк!

SELECT 
    Season, Owner, 
    SUM(Points) AS Points, 
    SUBSTR(MAX(CONCAT(LPAD(WEEK, 5, '0'),Comment)),6,100) AS Comment 
FROM standings 
GROUP BY Season, Owner 

SQLfiddle

+0

Спасибо за помощь! Это сработало, но у меня несколько сезонов в таблице (о чем я не могу сказать). – JD7

Смежные вопросы