Вопрос отдельных записей Oracle - PullRequest
1 голос
/ 15 февраля 2011

У меня есть таблица со следующими записями

seqNo   desc  typeID   statusID    GroupSeqNo
1       test    20        30          16
2       test1   21        42          16
3       test2   20        43          17   
4       test3   20        30          17
5       test4   21        42          18
6       test5   20        43          18

Я объединяю эту таблицу с парой других таблиц, чтобы получить описание типа и описание состояния.

Мой вопрос: как я могу отобразить только одну запись из каждого GroupSeqNo? Если вы посмотрите на приведенные выше примеры записей, есть 3 записи из GroupSeqNo 16, 2 для 17 и 2 для 18.

Ниже приведен запрос, который я использую:

SELECT DISTINCT SS.GROUPSEQNO,SS.SEQNO,SS.DESC,T.DESC,S.DESC 
FROM STATS SS, DDTYPES T, DDSTATUSES S 
WHERE SS.TYPE_ID=T.TYPE_ID AND SS.STATUS_ID=S.STATUS_ID

1 Ответ

1 голос
/ 15 февраля 2011

Присоединитесь к подзапросу, который группирует таблицу STATS, используя GROUP BY и выбирает MIN(seqNo) или MAX(seqNo) в зависимости от того, что вы хотите.

SELECT SS.GROUPSEQNO, SS.SEQNO, SS.DESC, T.DESC, S.DESC
FROM STATS SS
  INNER JOIN DDTYPES T ON  SS.TYPE_ID = T.TYPE_ID
  INNER JOIN DDSTATUSES S SS.STATUS_ID = S.STATUS_ID
  INNER JOIN (
    SELECT MIN(seqNo) MinID
    FROM STATS
    GROUP BY GroupSeqNo
  ) g ON SS.seqNo = g.MinID
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...