2016-03-02 33 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? –