我正在尝试列出数据库中最好的项目。如果利润更高,则项目更好。问题是一个可以重复的项目,例如10点500利润和14点750利润。
我当前的代码将同时显示尝试和php,我对此进行了过滤。这样,我一次获得了物料A,但是我不能说出物料A的总利润。
我的SQL语句是这样的:SELECT item FROM category WHERE endtime >=? ORDER BY profit DESC LIMIT 15
endtime是unixtime戳记,因此它显示了上周的项目。
使用php,我使用array_unique($items, SORT_REGULAR);
我希望SQL列出5个最有利可图的项目,列出利润和重复项加起来的项目。
所以这:a 500, b 250, c 350, b 100, a 25, c 50
变为:a 525, c 400, b 350
答案 0 :(得分:0)
如果我正确理解,您将获得如下表格:
item | profit
-----------
a | 500
b | 250
c | 350
b | 100
a | 25
c | 50
并且您想要:
item | profit
-----------
a | 525
b | 350
c | 400
使用GROUP BY
和SUM
SELECT item, sum(profit)
FROM category
WHERE endtime >=?
GROUP BY id;
答案 1 :(得分:0)
此查询应为您提供所需的结果(没有示例数据很难确定)。基本上,您需要使用SUM
来累加利润,使用GROUP BY item
来获得每个不同项目的总和。
SELECT item, SUM(profit) AS total_profit
FROM category
WHERE endtime >=?
GROUP BY item
ORDER BY total_profit DESC
LIMIT 5