我有一个卖物品的商店
每次销售商品时,以下数据都会放入数据库中:
-item_id
-item_count
-bought_value (money spent to buy this item, taking amount into consideration)
现在我想知道PER ITEM中出现的资金百分比
我想对此信息进行排序,但我不完全确定如何执行此操作
我目前拥有的是:
找到进来的总金额:SUM(boughtvalue)
查找所有项目:SELECT DISTINCT item_id
遍历所有项目并使用:SELECT SUM(boughtvalue) WHERE item_id = ...
这会让我得到结果,但他们并没有按照这种方式排序
我正在寻找的是" SELECT DISTINCT item_id ORDER BY SUM(buyvalue)"
我发现此信息的PHP脚本目前显示如下:
15332-0.75640207175834%
18353-0.30683127676158%
18349-0.53882565675204%
18351-0.20954331095913%
我只需要对这些信息进行排序。
答案 0 :(得分:2)
您正在寻找group by
:
SELECT item_id, SUM(boughtvalue)
FROM table t
GROUP BY item_id
ORDER BY SUM(boughtvalue) DESC;
答案 1 :(得分:0)
尝试类似:
select item_id, sum(item_count), sum(bought_value) from item_table group by item_id
假设您的表名是item_table
答案 2 :(得分:0)
玩这样的东西
SELECT item_id,
(
SUM( boughtvalue ) / ( SELECT SUM(boughtvalue) from tbl )
) as percentvalue
FROM tbl
GROUP BY item_id
ORDER BY percentvalue DESC;
通常我会劝阻子查询,但我认为优化器会优化它。
答案 3 :(得分:0)
尝试:
SELECT item_id, SUM(bought_value) as bought_value FROM item_table GROUP BY item_id ORDER BY bought_value