2013-03-27 4 views
3

Итак, у меня есть стол с несколькими колонками, и я делаю GROUP BY. В дополнение к получению других столбцов я хочу получить значение MIN() одного столбца, если другой столбец равен NULL. Вот то, что я до сих пор:MIN() с условиями? MySQL

Столбцы таблицы:

id  INT(11) UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, 
table2_id INT(11) UNSIGNED NOT NULL, 
iteration INT(11) UNSIGNED, 
timestamp INT(11) UNSIGNED NOT NULL 

SQL:

SELECT 
    table2_id, 
    COUNT(id) as total, 
    COUNT(iteration) as completed, 

    # I want the MIN(timestamp) but only when 
    # iteration IS NULL 
    MIN(timestamp) as next_incomplete 
FROM 
    table1 
GROUP BY 
    table2_id 
+0

Вы не должны быть выбора ' id', если это не в вашей 'GROUP BY'. – Kermit

+0

Хорошая точка! Сообщение редактировалось – chrislondon

ответ

7

Используйте это для MIN выражения:

MIN(CASE WHEN iteration IS NULL THEN timestamp END) as next_incomplete 
Смежные вопросы