Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Sql. Вывести запрос с условием поиска минимума.

Фулберт Страшный Профи (656), на голосовании 1 год назад
Нужно вывести клиентов с негативной реакцией на звонок и наименьшим временем разговора.
 SELECT calls.id_client FROM calls 
WHERE client_reaction = 'bad' and extract = (SELECT MIN(EXTRACT(MINUTE FROM dt_end - dt_start)) from calls)
Проблема в том, что выдаёт ошибку "столбца extract не существует", а изменять таблицу не рекомендуется. Что делать?
Голосование за лучший ответ
Аглая Шниц Искусственный Интеллект (145128) 1 год назад
может, так попробовать:
 SELECT 
calls.id_client
FROM
calls
WHERE
client_reaction = 'bad'
and
EXTRACT(MINUTE FROM dt_end - dt_start) =
(
SELECT
MIN(EXTRACT(MINUTE FROM dt_end - dt_start))
FROM calls
)
вот только терзают меня сомнения - не вытащит ли этот EXTRACT только минуты (т.е. 05:30 превратит в 30, а не в 5*60+30)

может, проканает прямо, без всяких экстрактов:
 SELECT  
calls.id_client
FROM
calls
WHERE
client_reaction = 'bad'
and
dt_end - dt_start =
(
SELECT
MIN(dt_end - dt_start)
FROM calls
)
Похожие вопросы