我想问一下如何选择3个最高值并在sqlite中加总。
我的表格如下:
ID SKU Price
----- ----- -----
John Product1 100
John Product2 10
Steven Product3 20
Rachel Product4 100
Jack Product5 10
John Product6 10
John Product7 10
简单的解决方案是:通过id从my_table group中选择Id,group_concat(SKU),sum(price);
这会给我整体情况,但如果我只想从每个id中包含三个最高值并且当然将这三个值相加,该怎么办?所以最终结果看起来像这样:
ID SKU Price
----- ----- -----
John Product1,Product2,Product6 120
Steven Product3 20
Rachel Product4 100
Jack Product5 10
答案 0 :(得分:1)
您可以使用此代码(请参阅sqlfiddle上的示例):
select ID, GROUP_CONCAT(SKU), SUM(PRICE)
from test t
where ID || '-' || SKU || '-' || Price in
(
select ID || '-' || SKU || '-' || Price
from test t2
where ID = t.ID
order by
Price desc
limit 3
) GROUP BY t.ID