0

次のデータを含むテーブルSaleがあります

Item_ID レート 数量 Sale_Day (YYYY-MM-DD)
--------------------------------------
P1 4 4 2013-06-02
P1 5 2 2013-06-02
P2 1 8 2013-06-02
P1 6 3 2013-06-03
P2 4 9 2013-06-03
P3 10 10 2013-06-03

次のような結果が必要です。

Item_ID Total Sale_Day (YYYY-MM-DD)
--------------------------------------
P1 26 2013-06-02
P3 100 2013-06-03

どんな助けでも大歓迎です。ありがとう!

4

1 に答える 1

1

試す

SELECT Sale_Day, Item_ID, Total 
FROM
(
SELECT Sale_Day, Item_ID, 
       SUM(Rate*Quantity) Total,
       RANK() OVER(PARTITION BY Sale_Day ORDER BY SUM(Rate*Quantity) DESC) rank
  FROM sale
 GROUP BY Sale_Day, Item_ID
) a 
 WHERE rank = 1
ORDER BY Sale_Day

出力:

|                    SALE_DAY | ITEM_ID | TOTAL |
-------------------------------------------------
| June, 02 2013 00:00:00+0000 |      P1 |    26 |
| June, 03 2013 00:00:00+0000 |      P3 |   100 |

これがSQLFiddleのデモです

于 2013-06-06T09:53:56.557 に答える