SQL查询以获取每日最高销售额

SQL查询以获取每日最高销售额,sql,sql-server,group-by,ranking,dense-rank,Sql,Sql Server,Group By,Ranking,Dense Rank,我有一张桌子,上面有以下数据 Item_ID Rate Quantity 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 P

我有一张桌子,上面有以下数据

Item_ID Rate Quantity 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 商品标识价格数量销售日(YYYY-MM-DD) -------------------------------------- P1 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 2013-06-03 我需要的结果如下:

Item_ID Total Sale_Day (YYYY-MM-DD) -------------------------------------- P1 26 2013-06-02 P3 100 2013-06-03 商品标识总销售日(YYYY-MM-DD) -------------------------------------- P1 26 2013-06-02 P3100 2013-06-03 任何帮助都将不胜感激。谢谢

试试看

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 |

这里是演示

真棒!非常感谢(彼得)