SQL. SUB QUERY
サブクエリ:主SELECT文内で他のSELECT文◆条件文として理解 PRODUCTSテーブルで、LIST PROICEの最大行のPRODUCT ID、PRODUCT NAME、およびLIST PROICEを検索します. PRODUCTS表の中で、RPODUCT NAME、LIST PRICE、AVG LIST PRICEを求めて、そしてPRODUCT NAME標準昇順に並べ替えます.ただし、AVG LIST PRICEは、同一のCATEGORY IDを有するLIST PRICEの平均値である. ORDER ITEMSテーブルで、ORDER ID、ORDER VALUEを求め、上位10桁のみを表示します.ORDER VALUEは、QUANTITY*UNIT PRICEの売上高を示しています. PRODUCT表にSELECT文を作成し、LIST PRICE価格が平均価格より高い行(集合)のPRODUCT ID、PRODUCT NAME、lIST PRICE列を求め、P NAMEで をソートする. CUSTOMERSテーブルでは、CREDIT LIMITの最大値の10行が印刷されます(ただし、CUSTOMERSテーブルのすべての列がCREDIT LIMITと同じである場合は、NAMEコラムごとに が昇順に並べられます).
SELECT
PRODUCT_ID,
PRODUCT_NAME,
LIST_PRICE
FROM PRODUCTS
WHERE LIST_PRICE = (SELECT
MAX(LIST_PRICE)
FROM PRODUCTS);
SELECT
A.PRODUCT_NAME,
A.LIST_PRICE,
(
SELECT
AVG(LIST_PRICE)
FROM PRODUCTS B
WHERE B.CATEGORY_ID = A.CATEGORY_ID
) AVG_LIST_PRICE
FROM PRODUCTS A
ORDER BY A.PRODUCT_NAME;
위와같이 SELECT절 안의 서브쿼리를 스칼라 서브쿼리라고 한다.
SELECT
ORDER_ID,
ORDER_VALUE
FROM
(
SELECT
ORDER_ID,
SUM(QUANTITY * UNIT_PRICE) ORDER_VALUE
FROM
ORDER_ITEMS
GROUP BY ORDER_ID
ORDER BY ORDER_VALUE DESC
)
WHERE
ROWNUM <= 10 ;
FROMセクションのSELECT文からVIEW->VIEWを生成し、ORDER IDとORDER VALUEのみを表示します(イントラビューサブクエリ)SELECT
A.PRODUCT_ID ,
A.PRODUCT_NAME ,
A.LIST_PRICE
FROM PRODUCTS A
WHERE LIST_PRICE > (SELECT
AVG(K.LIST_PRICE)
FROM PRODUCTS K)
ORDER BY PRODUCT_NAME ;
SELECT
*
FROM (SELECT *
FROM CUSTOMERS
ORDER BY CREDIT_LIMIT DESC, NAME)
WHERE ROWNUM <= 10;
Reference
この問題について(SQL. SUB QUERY), 我々は、より多くの情報をここで見つけました https://velog.io/@funco247/SQL.-SUB-QUERYテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol