0

サンプルデータの注文:

ORDER_DAY   ORDER_ID  PRODUCT_ID QUANTITY   PRICE
---------- --------- ----------- ---------- --------- 
01-JUL-11  O1        P1          5               5
01-JUL-11  O2        P2          2              10
01-JUL-11  O3        P3          10             25
01-JUL-11  O4        P1          20             5
02-JUL-11  O5        P3          5              25
02-JUL-11  O6        P4          6              20
02-JUL-11  O7        P1          2              5
02-JUL-11  O8        P5          1              50
02-JUL-11  O9        P6          2              50
02-JUL-11  O10       P2          4              10

Q: 両日とも最も売れた製品 (数量* 価格) を入手してください

望ましい出力:

DATE      PRODUCT_ID SOLD_AMOUNT
01-JUL-11      P3        250
02-JUL-11      P3        125
4

9 に答える 9

0

1 日あたりの販売量と製品を取得することから始めます。このデータを使用して、最初に 1 日あたりの最大利益を選択し、次にこれに一致するエントリを選択します。

WITH PRODUCT_PER_DAY AS
(
  SELECT ORDER_DAY, PRODUCT_ID, SUM(QUANTITY * PRICE) AS SOLD_AMOUNT
  FROM MYTABLE 
  GROUP BY ORDER_DAY, PRODUCT_ID
)
SELECT ORDER_DAY, PRODUCT_ID, SOLD_AMOUNT
FROM PRODUCT_PER_DAY
WHERE (ORDER_DAY, SOLD_AMOUNT) IN
(
  SELECT ORDER_DAY, MAX(SOLD_AMOUNT)
  FROM PRODUCT_PER_DAY 
  GROUP BY ORDER_DAY
)
ORDER BY ORDER_DAY, PRODUCT_ID;
于 2013-10-31T08:48:12.963 に答える
-1

date,product_id,max(product_id*price) を sold_amount として選択 order_day による注文グループ order_day による注文

于 2013-10-31T05:45:02.977 に答える
-1
    select t.ORDER_DAY as date1 ,t.PRODUCT_ID,max(t.quantity * t.price) 
as sold_amount from table t group by t.ORDER_DAY,t.PRODUCT_ID 
于 2013-10-31T05:39:13.230 に答える
-3
select order_day as orderdate,product_id,max(quantity * price) as sold_amount
from order
group by order_day
order by product_id
于 2013-10-31T05:33:33.877 に答える