如何获得汇总SQL中重复项的最佳项目?

时间:2019-01-03 22:05:57

标签: php mysql sql mysqli phpmyadmin

我正在尝试列出数据库中最好的项目。如果利润更高,则项目更好。问题是一个可以重复的项目,例如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

2 个答案:

答案 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 BYSUM

即可轻松实现。
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