2010-08-12 5 views
2

Как я могу объединить 2 группы по условиям? У меня есть записи для каждого идентификатора для каждого часа в день, и я хочу группировать информацию по первому id и всем записям для этого идентификатора в этот день, а затем по второму идентификатору и всем записям за этот день.Группа по - множественные условия - MySQL

Моего пример запрос заключается в следующем:

SELECT 
    r.name 
    , r.network 
    , r.namestring 
    , i.name 
, i.description 
    , r.rid 
    , i.id 
    , d.dtime 
    , d.ifInOctets 
FROM router AS r 
INNER JOIN interface AS i 
ON r.rid = i.rid 
INNER JOIN 1279080000_1_60 AS d 
ON i.id = d.id 
AND dtime BETWEEN 1279113600 AND 1279115400 
WHERE r.network = "ITPN" 
AND i.status = "active" 
GROUP BY i.id AND d.dtime    // each id with all its dtime 

Это всегда заканчивается тем, что дал мне агрегатное значение для этого идентификатора. Любая идея, что я мог бы использовать ??? Я не хочу суммировать все ценности.

Спасибо,

ответ

6

Для группы по несколько выражений, вы должны разделить их с запятой, а не AND:

GROUP BY i.id, d.dtime 

Вы также должны убедиться, что две записи образуют тот же день, имеют то же значение DTIME. Из вашего вопроса неясно, есть ли это или нет.

+0

Привет, я попробовал то, что вы сказали, но он не работает. Я думаю, проблема в том, что время dtime отличается. Мои записи, как это, например, для: ID DTIME ifInOctet 1 9:20 100 2 9:20 90 3 9:20 78 1 9: 21 23 2 9:21 50 1 9:22 3 3 9:22 200 Я хочу сгруппировать все 1 вместе, но не хочу добавлять значения IfInOctet. Любая идея? – JJunior

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