2015-07-21 2 views
-1

Я хочу найтиSql запрос альтернативный способ

Выберите не сотрудников вместе с относительно год и месяц из таблицы сотрудников

Мой запрос:

select to_char(JOINING_DATE,'YYYY') As "Year", 
     to_char(JOINING_DATE,'MM') As "MOnth", 
     Count(First_name) 
    from employee 
group by to_char(JOINING_DATE,'YYYY'), 
      to_char(JOINING_DATE,'MM'); 

Нет ошибок, работает успешно.

Есть ли альтернативный способ получить те же результаты, что и этот запрос?

+0

Alternative, как, это медленно или что-то? –

+0

Что в этом плохого? Почему вы должны писать запрос по-другому? – Max

+0

В зависимости от ваших требований вы можете вызвать функцию to_char только один раз с помощью маски 'yyyy-mm'. –

ответ

0

, если только группа в год и месяц, вы можете сделать следующее:

SELECT to_char(JOINING_DATE, 'MM-YYYY'), Count(First_name) 
FROM test_date 
GROUP BY to_char(JOINING_DATE, 'MM-YYYY') 
0

Вы, вероятно, хотите, чтобы упорядочить результаты. Я бы поставил год и месяц в той же колонке:

Select to_char(JOINING_DATE, 'YYYY-MM') As YYYYMM", Count(*) 
from employee 
group by to_char(JOINING_DATE, 'YYYY-MM') 
order by to_char(JOINING_DATE, 'YYYY-MM'); 
0

Вы могли бы упростить ваш запрос немного и попробовать:

SELECT YEAR(JOINING_DATE) As "Year", 
     MONTH(JOINING_DATE) As "Month", 
     Count(First_name) 
FROM employee 
GROUP BY Year, Month; 
Смежные вопросы