[英]SQL select from subquery
我在從子查詢中選擇具有此小演示數據的問題,例如:
ID CLASS_ID PROP STATUS ROW SELECTED STEP
12345679 1312 0 21 3 07-FEB-14 1
12345679 1312 0 21 1 26-FEB-14 -1
我想獲取所有信息(每列),下面的sql正常運行
SELECT ID,CLASS_ID,min(SELECTED) FROM ( SELECT... ) GROUP BY ID,CLASS_ID
ID CLASS_ID SELECTED
12345679 1312 07-FEB-14
但是,如果我想要其他列,則必須將它們添加到group語句中,否則我將獲得“ not a group statement”,從而使它過時,有什么想法嗎?
您要使用分析功能row_number()
:
select ID, CLASS_ID, PROP, STATUS, ROW, SELECTED
from (select s.*, row_number() over (partition by id, class_id
order by selected desc) as seqnum
from (<subquery>) s
) s
where seqnum = 1;
您想要基於組ID
和所有其他列的class_id
獲得最少的selected
列,則可以MIN() over partitioned by
函數MIN() over partitioned by
使用MIN() over partitioned by
-
SELECT ID,
CLASS_ID,
min(SELECTED) over (partition by ID,CLASS_ID order by 1) ,
col1 ...
FROM ( SELECT... )
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.