1列に個別のOracle:だから結果だけに関係なく、値はその私は次のようにテーブル構造を有する
が付属していることの
ITEM LOC STATUS QTY
001 RS1 A 10
001 JS1 I 20
110 RS1 A 4
が、私は明確なITEMに基づいて結果を取得したいがは、
ITEM LOC STATUS QTY
001 JS1 A 10
110 RS1 A 4
どのようにする必要がありますか?値が同じ行から来る必要がない場合
1列に個別のOracle:だから結果だけに関係なく、値はその私は次のようにテーブル構造を有する
が付属していることの
ITEM LOC STATUS QTY
001 RS1 A 10
001 JS1 I 20
110 RS1 A 4
が、私は明確なITEMに基づいて結果を取得したいがは、
ITEM LOC STATUS QTY
001 JS1 A 10
110 RS1 A 4
どのようにする必要がありますか?値が同じ行から来る必要がない場合
一つの方法は、集合体である:あなたが同じ行のすべての値をしたい場合は
select item, max(loc) as loc, . . .
from t
group by item;
、使用row_number()
:
select t.*
from (select t.*, row_number() over (partition by item order by item) as seqnum
from t
) t
where seqnum = 1;
各列にitem
の最小値(期待どおりの結果が表示される)が必要な場合:
SELECT ITEM,
MIN(LOC) AS LOC,
MIN(status) AS status,
MIN(qty) AS qty
FROM table_name
GROUP BY item
あなたは、特定の順序に対する最低限のある項目の値たい場合:
SELECT ITEM,
MIN(LOC) KEEP (DENSE_RANK FIRST ORDER BY your_criteria) AS LOC,
MIN(status) KEEP (DENSE_RANK FIRST ORDER BY your_criteria) AS status,
MIN(qty) KEEP (DENSE_RANK FIRST ORDER BY your_criteria) AS qty
FROM table_name
GROUP BY item
をそれとも、すべて同じ行からのものであるとする場合:項目別
SELECT item, loc, status, qty
FROM (
SELECT t.*,
ROW_NUMBER() OVER (PARTITION BY item ORDER BY your_criteria) AS RN
FROM table_name t
)
WHERE RN = 1;
グループ他の列には最大値または最小値を使用してください。 –
LOC、STATUSおよびQTY値の選択方法は?すべて同じ行(または)、または他の戦略からですか? – jarlh