Предположим, что у меня есть таблица, как показано ниже:запрашивая идентификатора, который имеет наибольшее количество просмотров
+----+-----------+
| ID | TIME |
+----+-----------+
| 1 | 12-MAR-15 |
| 2 | 23-APR-14 |
| 2 | 01-DEC-14 |
| 1 | 01-DEC-15 |
| 3 | 05-NOV-15 |
+----+-----------+
То, что я хочу сделать, это каждый год (год определяется как DATE), список ID, который имеет самый высокий счет в этом году. Так, например, ID 1 происходит больше всего в 2015 году, ID 2 происходит больше всего в 2014 году, и т.д.
Что у меня есть для запроса:
SELECT EXTRACT(year from time) "YEAR", COUNT(ID) "ID"
FROM table
GROUP BY EXTRACT(year from time)
ORDER BY COUNT(ID) DESC;
Но этот запрос просто подсчитывает, сколько раз год, как я могу исправить его до максимального количества идентификаторов в этом году?
Выход:
+------+----+
| YEAR | ID |
+------+----+
| 2015 | 2 |
| 2012 | 2 |
+------+----+
Ожидаемый результат:
+------+----+
| YEAR | ID |
+------+----+
| 2015 | 1 |
| 2014 | 2 |
+------+----+
Пожалуйста, вы можете поставить результаты вы получаете и ожидаемые результаты. Спасибо –
@ KamranFarzami, отредактированный выше, чтобы отразить это – user3268401