sql数据透视排名前5

sql数据透视排名前5,sql,vertica,Sql,Vertica,我有一个包含以下列的销售表: [Date], [StoreID], [ItemID], [AmountInDollars]. for example: 06052012 | 1 | 111 | 2.35 06052012 | 1 | 222 | 5.00 06052012 | 2 | 333 | 9.99 ... 01052012 | 30 | 999 | 3.98 我希望能够通过以下方式选择数据: [Date] | [StoreID] | totalSalesForTheDay |

我有一个包含以下列的销售表:

[Date], [StoreID], [ItemID], [AmountInDollars]. for example:

06052012 | 1  | 111 | 2.35
06052012 | 1  | 222 | 5.00
06052012 | 2  | 333 | 9.99
...
01052012 | 30 | 999 | 3.98
我希望能够通过以下方式选择数据:

[Date] |  [StoreID] | totalSalesForTheDay | TopSellingItemID1 | TopSellingItemID2 | TopSellingItemID3
我正在尝试以下方法:

select date,
       storeID,
       sum(AmountInDollars),
       ItemID
from sales
group by date,
       storeID,
       ItemID
这将提供当天售出的所有ItemId。。。 我怎么能 1.仅限3个顶级项目 2.在同一行中水平显示前三项

谢谢

根据要求-数据样本。这是一张原始的桌子

Date | StoreID | ItemID | AmountInDollars
06052012 | 1  | 111 | 2.35
06052012 | 1  | 222 | 5.00
06052012 | 1  | 444 | 9.99
06052012 | 1  | 222 | 5.00
06052012 | 1  | 444 | 9.99
06052012 | 1  | 333 | 9.99
06052012 | 1  | 444 | 9.99
06052012 | 2  | 222 | 5.00
06052012 | 2  | 444 | 9.99
06052012 | 2  | 333 | 9.99
06052012 | 2  | 444 | 9.99
05052012 | 1  | 111 | 2.35
05052012 | 1  | 222 | 5.00
05052012 | 1  | 444 | 9.99
05052012 | 1  | 222 | 5.00
05052012 | 1  | 444 | 9.99
05052012 | 1  | 333 | 9.99
05052012 | 1  | 444 | 9.99
05052012 | 2  | 222 | 5.00
05052012 | 2  | 444 | 9.99
05052012 | 2  | 333 | 9.99
05052012 | 2  | 444 | 9.99
将导致:

 Date     | StoreID |totalsales |  TopSellingItemID1 |  TopSellingItemID2 |  TopSellingItemID3 
 06052012 | 1       | 52.31 | 444 | 222 | 111
 06052012 | 2       | 34.97 | 444 | 222 | 333
 05052012 | 1       | 52.31 | 444 | 222 | 111
 05052012 | 2       | 34.97 | 444 | 222 | 111

谢谢…

我不相信Vertica支持Pivot


下面是一个类似问题的答案:

什么数据库管理系统?sql server?mysql?甲骨文?你有每天卖出什么样的itemId和多少数量的数据吗?没有,但我想我可以用它来计算itemId。我在考虑对sumItemID进行排名?你能给出你想要的结果的数据样本吗?