我有下面的查詢,我正在嘗試選擇inner_query.ship_codes。
如果我做inner_query.item_id_alias它作業得很好,但我怎么能選擇ship_codes從我inner_query?
SELECT inner_query.item_id_alias
FROM (
SELECT li.item_id as item_id_alias,
LISTAGG(a.ship_code, '; ')
WITHIN GROUP (ORDER BY a.ship_code) as "ship_codes"
FROM (
SELECT DISTINCT
ship_code,
MAX(order_id) as order_id
FROM orders o
WHERE o.order_id in (
SELECT li2.order_id
FROM line_items li2
GROUP BY li2.order_id
)
GROUP BY ship_code
)a
INNER JOIN line_items li ON a.order_id = li.order_id
GROUP BY li.item_id
) inner_query;
uj5u.com熱心網友回復:
使用列別名。由于您在子查詢中使用了帶引號的識別符號,因此您需要在外部查詢中使用帶引號的識別符號(以及您可能想要參考的任何其他地方):
SELECT inner_query.item_id_alias,
inner_query."ship_codes"
FROM (
SELECT li.item_id as item_id_alias,
LISTAGG(a.ship_code, '; ')
WITHIN GROUP (ORDER BY a.ship_code) as "ship_codes"
FROM (
SELECT DISTINCT
ship_code,
MAX(order_id) as order_id
FROM orders o
WHERE o.order_id in (
SELECT li2.order_id
FROM line_items li2
GROUP BY li2.order_id
)
GROUP BY ship_code
)a
INNER JOIN line_items li ON a.order_id = li.order_id
GROUP BY li.item_id
) inner_query;
或者,您可以使用通配符:
SELECT *
FROM (...) inner_query
或帶有子查詢別名的通配符:
SELECT inner_query.*
FROM (...) inner_query
或沒有子查詢別名的識別符號:
SELECT item_id_alias,
"ship_codes"
FROM (...) inner_query
(注意:在同一個陳述句中使用DISTINCT和是沒有意義的。您可以洗掉并且輸出不會改變。)GROUP BYSELECTDISTINCT
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/385716.html
上一篇:使用游標時如何遍歷一行
下一篇:創建計數列查詢
