SQL выбрать из группы

голоса
1

Предположим, мы имеем следующие данные таблицы:

ID   parent    stage     submitted
1      1         1           1
2      1         2           1
3      1         3           0
4      1         4           0
5      5         1           1
6      5         2           1
7      5         3           1
8      5         4           1

Как вы можете видеть, у нас есть 2 группы (которые имеют один и тот же родитель). Я хочу, чтобы выбрать последний этап, который представляется. В приведенном выше примере я хочу, чтобы выбрать ID`s 2 и 8. Я полностью потерял, так что если кто-нибудь может помочь будет понятно много. :)

Задан 19/05/2009 в 12:03
источник пользователем
На других языках...                            


4 ответов

голоса
-1
SELECT * FROM Table WHERE ID = 2 OR ID = 8

Это то, что вы хотите?

Ответил 19/05/2009 в 12:08
источник пользователем

голоса
8

SELECT T.ID, T.PARENT, T.STAGE 
from
   T, 
   (
      select PARENT, MAX( STAGE) MAX_STAGE 
      from T
      where SUBMITTED = 1
      GROUP BY PARENT 
   ) M
where 
   T.STAGE = M.MAX_STAGE 
   AND T.PARENT = M.PARENT

Объяснение: Во-первых, изолировать максимальный этап для каждой группы с = 1, представленный (внутренний выбор). Затем, присоединиться результат с реальным столом, чтобы отфильтровать записи без какой-либо стадии макс.

Ответил 19/05/2009 в 12:12
источник пользователем

голоса
1
Select Parent, max(Id)
From tbl t
Inner Join
(
    Select Parent, max(Stage) as Stage
    from tbl t
    Where Submitted = 1
    Group by Parent
) submitted
on t.Parent = submitted.parent and
    t.stage = submitted.stage
Group by Parent
Ответил 19/05/2009 в 12:12
источник пользователем

голоса
1

Это следует сделать это:

SELECT
     T1.id,
     T1.parent,
     T1.stage,
     T1.submitted
FROM
     Some_Table T1
LEFT OUTER JOIN Some_Table T2 ON
     T2.parent = T1.parent AND
     T2.submitted = 1 AND
     T2.stage > T1.stage
WHERE
     T1.submitted = 1 AND
     T2.id IS NULL
Ответил 19/05/2009 в 12:13
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more