#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