2016-03-02 89 views
0

有SQLite表:SQL能够做出正确的计数

orderitems 
-id 
-item_id 
-quantity 

我要统计每个ITEM_ID 这并不是一个问题:

$this->db->query("SELECT item_id,COUNT(item_id) 
        FROM sh_orderitems 
        GROUP by item_id 
        ORDER by COUNT(item_id) DESC LIMIT 5")->fetchAll(); 

结果是:

0 => 
array (size=4) 
    'item_id' => string '38' (length=2) 
    0 => string '38' (length=2) 
    'COUNT(item_id)' => string '3' (length=1) 
    1 => string '3' (length=1) 

但这不是一个好的解决方案,原因是:数量计算。 需要这样的东西SELECT ITEM_ID,COUNT(ITEM_ID)*数量

+0

什么'SUM(数量)'? –

+0

按item_id计数行或每item_id的总数量? – Cuchu

回答

0

如果YOUT计数行和秩序由数..

SELECT item_id,SUM(quantity) as `sum_items` 
        FROM sh_orderitems 
        GROUP by item_id 
        ORDER by `sum_items` DESC LIMIT 5 

SELECT item_id,sum_items 
     FROM (SELECT item_id, SUM(quantity) AS sum_items 
        FROM sh_orderitems 
        GROUP by item_id) 
     ORDER by sum_items DESC LIMIT 5 
+0

我需要统计购买了多少物品 –

+0

因此,您需要使用SUM(数量)。 – Cuchu

+0

是的,但如果我还需要item_id? –