Поиск большинства экземпляров за месяц

#sql #oracle #count

#sql #Oracle #количество

Вопрос:

Итак, это в значительной степени таблица (уже сузились нужные столбцы)

DATEREGIS:

 10-AUG-95 
02-MAY-01
12-NOV-98
09-OCT-99
12-NOV-98
2-NOV-00
12-AUG-01
  

и то, что я пытаюсь сделать, это создать запрос, чтобы найти самый загруженный месяц.

Это то, что у меня есть прямо сейчас, но это все виды ошибок, и я ни за что на свете не смогу разобраться в этом.

 SELECT 
    dateregistered, count(dateregistered) as count
FROM 
    pet
HAVING 
    count = MAX(count)
GROUP BY 
    dateregistered;
  

Пожалуйста, любая помощь была бы оценена.

РЕДАКТИРОВАТЬ * СУБД — это SQL * Plus

Комментарии:

1. SQL Plus — это не база данных — это инструмент разработчика для Oracle (который здесь является фактической системой баз данных ….)

Ответ №1:

Группируйте по месяцам и подсчитывайте. Упорядочите количество по убыванию и выберите первую строку из этого списка.

 SELECT *
FROM
(
  SELECT to_char(dateregistered,'mm') as month, count(*) as cnt
  FROM pet
  GROUP BY to_char(dateregistered,'mm')
  ORDER BY count(*) DESC
)
WHERE ROWNUM = 1;
  

Ответ №2:

Попробуйте это

 Select Month,max(count)
from 
(
SELECT datepart(mm,dateregistered) Month, count(*) as count
FROM pet
Group by datepart(mm,dateregistered);
)t
group by Month
  

Комментарии:

1. Вот что я получил: ОШИБКА в строке 6: ORA-00907: отсутствует правая скобка SQL> SP2-0042: неизвестная команда «) t» — остальная часть строки проигнорирована.

Ответ №3:

Вы можете перейти по этой ссылке, чтобы узнать больше о функциях mysql.

 SELECT MONTHNAME(dateregistered), count(dateregistered) as count
FROM `pet` 
group by MONTH(dateregistered)
order by MONTH(dateregistered) desc