2013-06-20 2 views
2

У меня есть следующий вход, где пользователь просматривал программу в следующих процентах (25 или 50 или 75 или 100). Я просто хочу рассчитать самый высокий процент, просматриваемый определенным пользователь с определенным идентификатором. Вводы и выходы приведены ниже.Как консолидировать вывод на основе максимального значения в mysql

Входной

id1, u1, watched25 
id2, u1, watched25 
id1, u1, watched50 
id1, u1, watched75 
id3, u1, watched25 
id4, u1, watched25 
id1, u1, watched100 
id2, u1, watched50 
id5, u1, watched25 
id5, u1, watched50 
id5, u1, watched75 
id5, u1, watched100 
id1, u2, watched25 
id1, u2, watched50 
id3, u2, watched25 
id3, u3, watched25 
id1, u2, watched75 
id4, u3, watched25 
id4, u3, watched50 

Желаемая выход

id1, u1, watched100 
id2, u1, watched50 
id3, u1, watched25 
id5, u1, watched25 
id5, u1, watched100 
id1, u2, watched75 
id3, u2, watched25 
id3, u3, watched25 
id4, u3, watched50 

ответ

3
select id, user, max(watched) 
from tbl 
group by id, user 

Я предлагаю вам изменить "watchedXX" на "XX" для облегчения расчетов. Мой запрос выше, основан на этом предположении

1

Запрос:

SQLFIDDLEEXample

SELECT t1.id1, 
     t1.u1, 
     MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED)) as watched 
FROM Table1 t1 
GROUP BY t1.id1, t1.u1 

Результат:

| ID1 | U1 | WATCHED | 
---------------------- 
| id1 | u1 |  100 | 
| id1 | u2 |  75 | 
| id2 | u1 |  50 | 
| id3 | u1 |  25 | 
| id3 | u2 |  25 | 
| id3 | u3 |  25 | 
| id4 | u1 |  25 | 
| id4 | u3 |  50 | 
| id5 | u1 |  100 | 

Желаемая выход запроса:

SELECT t1.id1, 
     t1.u1, 
     CONCAT('watched',MAX(CAST(REPLACE(t1.watched25, 'watched', '') AS SIGNED))) as watched 
FROM Table1 t1 
GROUP BY t1.id1, t1.u1 

Результат желаемого выхода:

| ID1 | U1 | WATCHED | 
------------------------- 
| id1 | u1 | watched100 | 
| id1 | u2 | watched75 | 
| id2 | u1 | watched50 | 
| id3 | u1 | watched25 | 
| id3 | u2 | watched25 | 
| id3 | u3 | watched25 | 
| id4 | u1 | watched25 | 
| id4 | u3 | watched50 | 
| id5 | u1 | watched100 | 
Смежные вопросы