Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 能够正确计算的sql_Php_Sql_Sqlite - Fatal编程技术网

Php 能够正确计算的sql

Php 能够正确计算的sql,php,sql,sqlite,Php,Sql,Sqlite,拥有sqlite表: orderitems -id -item_id -quantity 我需要清点每件物品的编号 这不是问题: $this->db->query("SELECT item_id,COUNT(item_id) FROM sh_orderitems GROUP by item_id ORDER by COUNT(item_id) DESC

拥有sqlite表:

orderitems
-id
-item_id
-quantity
我需要清点每件物品的编号 这不是问题:

$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)
但这不是一个好的解决方案,因为:数量不算在内。
如果您按计数行和订单,则需要选择项目id、计数(项目id)*数量之类的内容

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


那么,
SUM(quantity)
?计算每个项目id的行数或每个项目id的SUM quantity?因此,您需要使用SUM(quantity)。最终的解决方案是按项目id从sh_orderitems组中选择项目id、SUM(quantity)
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