Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/70.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
Mysql 如何按列对表中的行进行计数和求和?_Mysql_Database - Fatal编程技术网

Mysql 如何按列对表中的行进行计数和求和?

Mysql 如何按列对表中的行进行计数和求和?,mysql,database,Mysql,Database,我有三张桌子: 产品(id、名称、类别\u id等) 类别(id,…) 销售(id\u产品、id\u用户、销售、销售日期、数量) 我正在努力获得最畅销的产品: 提供我想要的所有信息,除了数量不按id\u乘积分组/求和这一事实 因此,为了解决我正在尝试用求和(S.quantity)和按id\u乘积分组的问题: SELECT P.`id`, P.`name`, C.`name` as catName, SUM(S.`quantity`) FROM `products` AS P, `ca

我有三张桌子:

  • 产品(id、名称、类别\u id等)
  • 类别(id,…)
  • 销售(id\u产品、id\u用户、销售、销售日期、数量)

我正在努力获得最畅销的产品:

提供我想要的所有信息,除了数量不按id\u乘积分组/求和这一事实


因此,为了解决我正在尝试用
求和(S.quantity)
按id\u乘积分组的问题:

SELECT P.`id`, P.`name`, C.`name` as catName, SUM(S.`quantity`) 
FROM `products` AS P, `categories` AS C, `sales` AS S 
WHERE P.`category_id` = C.`id` 
    AND P.`id` = S.`id_product` 
    AND P.`id` IN ( 
                    SELECT `id_product` FROM `sales` 
                    WHERE `selled`=1
                  ) 
LIMIT 8 
GROUP BY P.`id`
查询后,我收到一个错误

1064-您的SQL语法有错误;请查看与MySQL服务器版本对应的手册,以了解第3行“groupby P.
id
”附近使用的正确语法


有没有办法实现我想要的目标?为什么group by不能这样使用?group by在限制之前


节日快乐

小组先来谢谢迈克,成功了。注意:产品、类别和销售之间的1:M关系会人为地夸大数量和金额。在使用内联视图进行连接之前,必须求和/计数值!
SELECT P.`id`, P.`name`, C.`name` as catName, SUM(S.`quantity`) 
FROM `products` AS P, `categories` AS C, `sales` AS S 
WHERE P.`category_id` = C.`id` 
    AND P.`id` = S.`id_product` 
    AND P.`id` IN ( 
                    SELECT `id_product` FROM `sales` 
                    WHERE `selled`=1
                  ) 
LIMIT 8 
GROUP BY P.`id`