Получение значения счетчика из таблицы Oracle - PullRequest
4 голосов
/ 30 августа 2011

У меня есть таблица с работниками.Поскольку компания, в которой я работаю, довольно большая (> 3 тыс. Сотрудников), вполне естественно, что некоторые из них имеют одинаковые имена.Теперь их можно различить по именам пользователей, но поскольку веб-страница требует раскрытия всех этих пользователей, мне необходимо добавить некоторые дополнительные данные к их именам.

Я знаю, что могу сначала захватить всех пользователей, а затем запустить их через foreach и добавить счетчик для каждого из пользовательских объектов.Это было бы довольно неэффективно, хотя.Поэтому мне нужен хороший запрос SQL, который бы делал что-то вроде этого.Может ли подзапрос быть тем, что мне нужно?

Моя таблица выглядит примерно так:

name ----- surname ----- username

John       Mayer         jmaye

Suzan      Harvey        sharv

John       Mayer         jmay3

Теперь я думаю, что было бы замечательно, если бы запрос возвратил те же 3 полятакже логическое значение, если существует более одного человека с одинаковой комбинацией имени и фамилии.

Ответы [ 2 ]

5 голосов
/ 30 августа 2011

Добавление флага к ответу Даниила ...

SELECT NAME, SURNAME, USERNAME, DECODE(COUNT(*) OVER (PARTITION BY NAME, SURNAME), 1, 'N', 'Y')
FROM
YOUR_TABLE;

Обратите внимание, что Oracle SQL не поддерживает логические значения (вздох ...)

3 голосов
/ 30 августа 2011

Это можно легко сделать с помощью счетчика разделов:

SELECT NAME, SURNAME, USERNAME, COUNT(*) OVER (PARTITION BY NAME, SURNAME)
FROM
YOUR_TABLE;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...