Мне нужно написать запрос, который находит наиболее распространенные имена, учитывая таблицу с именем USERS_FAKE U.
Моя проблема заключается в том, что мне удалось написать запрос, который возвращает ТОЛЬКО 1 общее имя. Но если имя «Боб» появляется 6 раз, что делает его наиболее распространенным именем, а также есть другие имена, которые появляются 6 раз (например, «Майк»), мой запрос будет возвращать только «Боб». Мой запрос должен вернуть Боба и Майка, поскольку они имеют одинаковое количество вхождений.
Попытка в MCRE:
-- The table we are working with
CREATE TABLE USERS_FAKE (
USER_ID NUMBER PRIMARY KEY,
FIRST_NAME VARCHAR2(100) NOT NULL,
LAST_NAME VARCHAR2(100) NOT NULL
);
-- Test Data, to test that we return the Most Common First Name(s)
-- (clearly there are 2 Most Common First Name(s): Bob and Mike)
INSERT INTO USERS_FAKE VALUES(5, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(6, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(7, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(8, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(9, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(10, 'Bob', 'Io');
INSERT INTO USERS_FAKE VALUES(11, 'Mike', 'Ganymede');
INSERT INTO USERS_FAKE VALUES(12, 'Mike', 'Ganymede');
INSERT INTO USERS_FAKE VALUES(13, 'Mike', 'Ganymede');
INSERT INTO USERS_FAKE VALUES(14, 'Mike', 'Ganymede');
INSERT INTO USERS_FAKE VALUES(15, 'Mike', 'Ganymede');
INSERT INTO USERS_FAKE VALUES(16, 'Mike', 'Ganymede');
Мне нужно написать простой запрос, использующий агрегацию + WHERE
предложение, но вы объедините два в SQL. Это в Oracle, и я должен использовать ROWNUM
, LIMIT
не работает в моей среде.