2012-06-10 3 views
2

Я пытаюсь найти maxcount строки datetime.MySQL Месяц Datetime Макс. Счет

То есть, я пытаюсь отобразить имя наиболее часто встречающегося месяца в столбце данных DATETIME.

вот мой код:

Select MONTHNAME(a.AF_Zeit) as Monat 
From abflug a 
group by MONTH(a.AF_Zeit) 
having count(AF_Zeit) = (select max(count(MONTH(AF_Zeit))) 
       from abflug 
       group by MONTH(AF_Zeit)) 

MYSQL возвращает сообщение: "# 1111 - Неправильное использование групповой функции"

Я не понимаю! Я слышал, где есть другие возможности для этого, но мне нужно сделать это с помощью подзапросов. Я очень благодарен за любую помощь.

ответ

1

Я предполагаю, что вы пытаетесь отобразить имя наиболее часто встречающегося месяца в столбце AF_ZEIT таблицы ABFLUG.

Как вы это делаете? Поработаем с ней концептуально.

Для начала вам понадобится виртуальная таблица (подзаголовок, как вы ее выразили), указав имя месяца для каждой строки вашей таблицы ABFLUG.

SELECT MONTHNAME(a.AF_Zeit) as Monat 
    FROM ABFLUG A 

Затем вам необходимо посчитать эти предметы (или, можно сказать, получить гистограмму в месяц). Это сделает это. Это меньшая виртуальная таблица.

SELECT COUNT(*) NNN, MONTHNAME(a.AF_Zeit) as Monat 
    FROM ABFLUG A 
GROUP BY MONTHNAME(a.AF_Zeit) 

Затем вам нужно манипулировать строки этой таблицы, чтобы упорядочить их в порядке убывания частоты порядка и отображения первого (наиболее частый) один.

SELECT Z.Monat FROM (
    SELECT COUNT(*) NNN, MONTHNAME(a.AF_Zeit) as Monat 
    FROM ABFLUG A 
    GROUP BY MONTHNAME(a.AF_Zeit) 
)Z 
    ORDER BY Z.NNN 
    LIMIT 1 

Обратите внимание, что твердая часть этого достижения концептуальной ясности в отношении того, что вы пытаетесь сделать в просторечии виртуальных таблиц.

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