#sql #oracle
Вопрос:
У меня есть такой стол, как :
ID | Val | Kind
----------------------
1 | a | 2
2 | b | 1
3 | c | 4
3 | c | 33
и мне нужно получить по одной строке на каждый идентификатор в Oracle SQL.
есть какие-нибудь идеи?
Комментарии:
1. В ваших данных есть только одна строка на каждую
id
, поэтому вопрос неясен.2. Возможно, ОП намеревался запросить по одной записи на вид, основываясь на некоторой логике (также не приведенной).
3. Спасибо @Gordon, я обновил данные сейчас .
4. Как вы думаете, зачем вам нужна хранимая процедура?
5. PL/SQL-это язык программирования. Вы действительно имеете в виду «извлечение» «с помощью PLSQL» или вам просто нужна
select
инструкция Oracle SQL?
Ответ №1:
Вы можете использовать row_number()
для перечисления строк. Для произвольной строки:
select t.*
from (select t.*,
row_number() over (partition by id order by id) as seqnum
from t
) t
where seqnum = 1;
Однако, как я указываю в комментарии, это необязательно, основываясь на данных, приведенных в вашем вопросе. Буквы id
s уже уникальны.