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`