mysql - 使用分组依据
mysql - Using Group By
我正在尝试为我正在为 android 开发的应用编写 mysql 查询。
我的数据库有一个 bill_content
table 和一个 products
table
我想 select 前 10 名最畅销的产品。
这是我所拥有的最小版本,但这是我在这里得到答案所需要的全部。
bill_content
table 具有以下列:id
、id_product
、quantity
(id_product 和此处的数量可以重复,因为这table较大,包含id_bill等信息)
products
table 具有以下列:id
、name
SELECT products.name AS Product,
bill_content.quantity AS Quantity
FROM bill_content, products
WHERE bill_content.id = products.id
ORDER BY bill_content.quantity DESC
LIMIT 10
当然这个 returns 2 行的 table 包含 bill_content
table 中的所有产品及其数量,但是有重复项,我需要将它们的数量相加并将它们显示为一行。
提前谢谢你。
已回答
正如 Gordon Linoff 所说,这可以使用 GROUP BY
来完成。
你想要一个 group by
。您还应该学习使用正确的显式 join
语法:
SELECT p.name AS Product,
SUM(bc.quantity) AS Quantity
FROM bill_content bc JOIN
products p
ON bc.id = p.id
GROUP BY p.name
ORDER BY SUM(bc.quantity) DESC
LIMIT 10;
我正在尝试为我正在为 android 开发的应用编写 mysql 查询。
我的数据库有一个 bill_content
table 和一个 products
table
我想 select 前 10 名最畅销的产品。
这是我所拥有的最小版本,但这是我在这里得到答案所需要的全部。
bill_content
table 具有以下列:id
、id_product
、quantity
(id_product 和此处的数量可以重复,因为这table较大,包含id_bill等信息)
products
table 具有以下列:id
、name
SELECT products.name AS Product,
bill_content.quantity AS Quantity
FROM bill_content, products
WHERE bill_content.id = products.id
ORDER BY bill_content.quantity DESC
LIMIT 10
当然这个 returns 2 行的 table 包含 bill_content
table 中的所有产品及其数量,但是有重复项,我需要将它们的数量相加并将它们显示为一行。
提前谢谢你。
已回答
正如 Gordon Linoff 所说,这可以使用 GROUP BY
来完成。
你想要一个 group by
。您还应该学习使用正确的显式 join
语法:
SELECT p.name AS Product,
SUM(bc.quantity) AS Quantity
FROM bill_content bc JOIN
products p
ON bc.id = p.id
GROUP BY p.name
ORDER BY SUM(bc.quantity) DESC
LIMIT 10;